Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-18702

Performance improvements on Camel File component

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Done
    • Major
    • fuse-7.11.1-GA
    • fuse-7.10-GA
    • Camel
    • None

    Description

      In Camel File component, the FileConsumer.pollDirectory() call several methods that are java.ioFile.* 

      java.io.File.length()
      java.io.File.lastModified()
      java.io.File.isDirectory()
      and another
      java.io.File.isDirectory()

      Probably java.io.File is inefficient. Java 7's java.nio.file package with Files.newDirectoryStream() is much more efficient and should be used these days.

      https://www.rgagnon.com/javadetails/java-get-directory-content-faster-with-many-files.html

      found a factor of 460x performance improvement on large directories with java.nio.file vs java.io.File.

      Is there a good reason why we don't use java.nio.file.* to improve performance? 

      Attachments

        1. camel-file-win.xml
          0.9 kB
          Roger Hui
        2. Fuse7.10 camel-core profiler.png
          111 kB
          Roger Hui
        3. New camel-core profiler.png
          517 kB
          Roger Hui
        4. Screenshot from 2022-03-17 18-44-45.png
          531 kB
          Roger Hui

        Issue Links

          Activity

            People

              rnetuka@redhat.com Radovan Netuka
              rhn-support-whui Roger Hui
              Federico Mariani Federico Mariani
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: