This is a migrated thread and some comments may be shown as answers.

RadFileExplorer very slow

7 Answers 162 Views
FileExplorer
This is a migrated thread and some comments may be shown as answers.
Newton
Top achievements
Rank 2
Newton asked on 13 Mar 2009, 04:26 AM

Hello,

This new FileExplorer control is very, very, very slow to open folders with a lot of files in Internet Explorer 7. Testing with a folder with 1000 jpg files, 4Kb each file, take more than 5 minutes to open in a machine with Dual Xeon processor and SAS 15K speed disk and causes iexplorer process to consume much cpu.

With Firefox works very fast.

Regards,
Newton

7 Answers, 1 is accepted

Sort by
0
Lini
Telerik team
answered on 16 Mar 2009, 01:43 PM
Hi Newton,

The file explorer control uses client databinding to display the files and folders in the grid. Because of that, its speed is very dependant on the browser used. Internet Explorer 7 is by far the slowest performer when it comes to client speed. Make sure that you are using the Q1 2009 release of the FileExplorer control, since it has a specific optimization for IE rendering.

We also plan to offer a treeview-only mode in the FileExplorer, where you will see both folders and files in the treeview, eliminating the slow grid.

All the best,
Lini
the Telerik team


Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Lini
Telerik team
answered on 17 Mar 2009, 08:35 AM
An important thing I forgot to mention is that setting <compilation debug="false"/> in the web.config file of your application should speed up the FileExplorer quite a bit. When debug is set to true, the ASP.NET AJAX extensions client script adds a lot of overhead (e.g. function parameters checking), which in this case slows down client databinding.

Best wishes,
Lini
the Telerik team


Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
jfkrueger
Top achievements
Rank 1
answered on 26 Jan 2011, 11:53 PM
The performance in IE8 is still dismal. This control is essentially unusable unless you are dealing with a very small amount of folders/files. I have tried both with debug="false" and "true" and the time was the same.
0
Dobromir
Telerik team
answered on 31 Jan 2011, 12:10 PM
Hi Joe,

Since version Q1 2009 SP2, RadFileExplorer offers a paging functionality to improve the controls performance. To enable this functionality you need to set RadFileExplorer's AllowPaging property to true and then you can use PageSize property to determine the number of the displayed items.

Kind regards,
Dobromir
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
Charles
Top achievements
Rank 1
answered on 25 Aug 2016, 11:52 AM
Has anyone solved this yet?
I'm having the same issue in my CMS which uses the ImageManager, which in turn uses the RadFileExplorer, which takes too long to load files when the folder has too a lot of images (eg. 1000+, there is no way round it).
So I created a test website to investigate this issue. In IIS for this website, it has a virtual directory called "assets" which is mapped to another folder called "assets" Azure fileshare (eg. \\myfileshare.file.core.windows.net\assets)
Therefore to access the files from my test website, you can just go to "www.abc.com/assets/bob.jpg".
In my test website, I have two methods of viewing files from my file share.
The 1st is the RadFileExplorer:
cntrlRadFileExplorer.Configuration.ViewPaths = New String() {myVirtualPath}
cntrlRadFileExplorer.Configuration.UploadPaths = cntrlRadFileExplorer.Configuration.ViewPaths
cntrlRadFileExplorer.Configuration.DeletePaths = cntrlRadFileExplorer.Configuration.ViewPaths
The 2nd is just a button which when clicked will do this:
Protected Sub btnTestDirectoryInfo_Click(sender As Object, e As System.EventArgs) Handles btnTestDirectoryInfo.Click
        'Testing this using DirectoryInfo because Telerik says the RadFileExplorer's content provider uses the GetFiles and GetDirectories methods of the "System.IO.DirectoryInfo" - http://www.telerik.com/forums/virtual-directory-not-working-with-radfileexplorer
        Dim myDirectoryInfo As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(myPhysicalPath)
        Dim myFileInfo As System.IO.FileInfo() = myDirectoryInfo.GetFiles("*.*")
        Dim myFolders As System.IO.DirectoryInfo() = myDirectoryInfo.GetDirectories()
        For Each x In myFileInfo
            txtFiles.Text &= x.FullName & vbCrLf
        Next
    End Sub
The 2nd method list all the files almost instantly no matter how many files is in the assets directory, however the 1st method with the RadFileExplorer takes too long when there is lots of files, with less files it works fine.
I have search throughout the web and lots of articles here and still have not found a solution. Some suggested creating a new FileProvider for the RadFileExplorer which I have tried, for example, I created a new provided called "ExtentedFileProvider.vb" and overriden the "Resolve Directory" method:
Public Overloads Overrides Function ResolveDirectory(ByVal path As String) As Telerik.Web.UI.Widgets.DirectoryItem
        'get the directory information
        Dim baseDirectory As Telerik.Web.UI.Widgets.DirectoryItem = MyBase.ResolveDirectory(path)
        'remove files that we do not want to see
        Dim files As New System.Collections.Generic.List(Of Telerik.Web.UI.Widgets.FileItem)()
        For Each file As Telerik.Web.UI.Widgets.FileItem In baseDirectory.Files
            If Not file.Name.StartsWith("Blue") Then
                files.Add(file)
            End If
        Next
        Dim newDirectory As New Telerik.Web.UI.Widgets.DirectoryItem(baseDirectory.Name, baseDirectory.Location, baseDirectory.FullPath, baseDirectory.Tag, baseDirectory.Permissions, files.ToArray(), baseDirectory.Directories)
        'return the updated directory information
        Return newDirectory
    End Function
But I'm not sure how you can change this to improve performance? Since it uses the base "ResolveDirectory" method to recurive loop itself. Is there anyway I can chagne it to use the standard System.IO.DirectoryInfo to get a list of file instead?

0
Charles
Top achievements
Rank 1
answered on 25 Aug 2016, 11:55 AM

Sorry, reposted it as my last comment were missing linebreaks.

Has anyone solved this yet?

I'm having the same issue in my CMS which uses the ImageManager, which in turn uses the RadFileExplorer, which takes too long to load files when the folder has too a lot of images (eg. 1000+, there is no way round it).

So I created a test website to investigate this issue. In IIS for this website, it has a virtual directory called "assets" which is mapped to another folder called "assets" Azure fileshare (eg. \\myfileshare.file.core.windows.net\assets)

Therefore to access the files from my test website, you can just go to "www.abc.com/assets/bob.jpg".
In my test website, I have two methods of viewing files from my file share.

The 1st is the RadFileExplorer:

cntrlRadFileExplorer.Configuration.ViewPaths = New String() {myVirtualPath}
cntrlRadFileExplorer.Configuration.UploadPaths = cntrlRadFileExplorer.Configuration.ViewPaths
cntrlRadFileExplorer.Configuration.DeletePaths = cntrlRadFileExplorer.Configuration.ViewPaths

The 2nd is just a button which when clicked will do this:

Protected Sub btnTestDirectoryInfo_Click(sender As Object, e As System.EventArgs) Handles btnTestDirectoryInfo.Click
        'Testing this using DirectoryInfo because Telerik says the RadFileExplorer's content provider uses the GetFiles and GetDirectories methods of the "System.IO.DirectoryInfo" - http://www.telerik.com/forums/virtual-directory-not-working-with-radfileexplorer
        Dim myDirectoryInfo As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(myPhysicalPath)
        Dim myFileInfo As System.IO.FileInfo() = myDirectoryInfo.GetFiles("*.*")
        Dim myFolders As System.IO.DirectoryInfo() = myDirectoryInfo.GetDirectories()
        For Each x In myFileInfo
            txtFiles.Text &= x.FullName & vbCrLf
        Next
    End Sub

The 2nd method list all the files almost instantly no matter how many files is in the assets directory, however the 1st method with the RadFileExplorer takes too long when there is lots of files, with less files it works fine.

I have search throughout the web and lots of articles here and still have not found a solution. Some suggested creating a new FileProvider for the RadFileExplorer which I have tried, for example, I created a new provided called "ExtentedFileProvider.vb" and overriden the "Resolve Directory" method:

Public Overloads Overrides Function ResolveDirectory(ByVal path As String) As Telerik.Web.UI.Widgets.DirectoryItem
        'get the directory information
        Dim baseDirectory As Telerik.Web.UI.Widgets.DirectoryItem = MyBase.ResolveDirectory(path)
        'remove files that we do not want to see
        Dim files As New System.Collections.Generic.List(Of Telerik.Web.UI.Widgets.FileItem)()
        For Each file As Telerik.Web.UI.Widgets.FileItem In baseDirectory.Files
            If Not file.Name.StartsWith("Blue") Then
                files.Add(file)
            End If
        Next
        Dim newDirectory As New Telerik.Web.UI.Widgets.DirectoryItem(baseDirectory.Name, baseDirectory.Location, baseDirectory.FullPath, baseDirectory.Tag, baseDirectory.Permissions, files.ToArray(), baseDirectory.Directories)
        'return the updated directory information
        Return newDirectory
    End Function

But I'm not sure how you can change this to improve performance? Since it uses the base "ResolveDirectory" method to recurive loop itself. Is there anyway I can chagne it to use the standard System.IO.DirectoryInfo to get a list of file instead?


0
Vessy
Telerik team
answered on 30 Aug 2016, 10:24 AM
Hi Newton,

Then RadFileExplorer is used in Thumbnails mode it uses the original image to create the thumbnails dynamically, thus the it performance depends on the size and the count of the loaded images. This issue and the possible ways to optimize the control's performance are explained in details in the following forum thread, so you can consider implementing the suggested workarounds in your ImageManager
http://www.telerik.com/forums/performance-drop-with-explorermode-thumbnails

In addition, you can also take a look at the optimization approaches suggested in this forum thread:
http://www.telerik.com/forums/image-manager-loads-slow-4aa92cf19fba

I hope this helps.

Regards,
Vessy
Telerik by Progress
Do you need help with upgrading your ASP.NET AJAX, WPF or WinForms projects? Check the Telerik API Analyzer and share your thoughts.
Tags
FileExplorer
Asked by
Newton
Top achievements
Rank 2
Answers by
Lini
Telerik team
jfkrueger
Top achievements
Rank 1
Dobromir
Telerik team
Charles
Top achievements
Rank 1
Vessy
Telerik team
Share this question
or