RadFileExplorer very slow

8 posts, 0 answers
  1. Newton
    Newton avatar
    26 posts
    Member since:
    Sep 2005

    Posted 12 Mar 2009 Link to this post

    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

  2. Lini
    Admin
    Lini avatar
    2144 posts

    Posted 16 Mar 2009 Link to this post

    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.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Lini
    Admin
    Lini avatar
    2144 posts

    Posted 17 Mar 2009 Link to this post

    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.
  5. jfkrueger
    jfkrueger avatar
    269 posts
    Member since:
    Jul 2012

    Posted 26 Jan 2011 Link to this post

    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.
  6. Dobromir
    Admin
    Dobromir avatar
    1633 posts

    Posted 31 Jan 2011 Link to this post

    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.
  7. Charles
    Charles avatar
    32 posts
    Member since:
    Mar 2008

    Posted 25 Aug Link to this post

    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?

  8. Charles
    Charles avatar
    32 posts
    Member since:
    Mar 2008

    Posted 25 Aug Link to this post

    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?


  9. Vessy
    Admin
    Vessy avatar
    1382 posts

    Posted 30 Aug Link to this post

    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.
Back to Top
UI for ASP.NET Ajax is Ready for VS 2017