Skip to main content

Multi-threading

Use multiple threads when reading and writing files. The read thread will load the data block, compute its checksum, and then store it in a memory buffer (illustrated as the dark blue blocks in the screenshot), making it readily available for the write thread to use. This will replace the async copy method in earlier versions of TeraCopy and increase performance on SSD and network devices.

Status: Completed28 comments

Log in to comment and vote

Comments28

  • Code Sector

    Team•

    Apr 11, 2024

    Currently completed:

    • Testing, copying, verification.

    • Improved speed graph.

    • List of runs/retries.

    • Internal database schema redesign.

    • UI enhancements for multi-target support.

    • Circular progress indicators on the main panel and within the file list.

    • Ole Aldric

      •

      Apr 11, 2024

      This looks way better than I thought it would! Is this ready for beta testing?

      • Code Sector

        Team•

        Apr 11, 2024

        The beta version is coming in a week or two.

  • Code Sector

    Team•

    May 10, 2024

    • Ole Aldric

      •

      May 10, 2024


      There is plenty of RAM to be had here, Is there a way to up the buffer size even more? If spreading the load over multiple devices in an LDM is not possible, i guess it could be beneficial to pump the data into as much RAM as possible :)

      • Code Sector

        Team•

        May 10, 2024

        You can tweak these values in the Options.ini file:

        [Transfer]

        Buffers=10

        BufferSize=1048576

        • Ole Aldric

          •

          May 10, 2024

          Thanks!

          How does TeraCopy handle small files in regards to buffer size? Will it fill or consume an entire buffer for each file?

          • Code Sector

            Team•

            May 11, 2024

            Since memory allocation can be slow, it's efficient for each small file to occupy one block or buffer. When handling many small files, reducing the buffer size and increasing the number of blocks and threads helps avoid memory wastage. Additionally, we're considering creating a dedicated thread specifically for small files.

    • Avrution

      •

      May 10, 2024

      Nice. Went from 1.2gbit max to over 2gbit. Been waiting for this one.

      Plans for a true installable version? Seems this doesn't work if you override the 4.x version.

      • Code Sector

        Team•

        May 11, 2024

        Yes, for beta versions. You can install v3.x and substitute the TeraCopy.exe file with the version from v4.

  • Ole Aldric

    •

    Feb 27, 2024

    Will this also make use of SMB multichannel?

    • Code Sector

      Team•

      Feb 28, 2024

      The SMB client is integrated into the Windows operating system, which should improve the performance of all applications, including TeraCopy, through the use of SMB multichannel. TeraCopy does not directly utilize SMB.

  • John Schilling

    •

    Mar 25, 2024

    Well, as a holder of a 10 copy license of 3.x for my group's DevPCs, I guess that as soon as this is out and stable it will be time to purchase another ten new or upgrade licenses!

    This is a feature request of mine from way back and I have a perfect use case.

    If there is a need for any beta testers and the are alpha/betas during the summer, I might well have a couple of Drexel undergrads who could be protuctivly employed!

    Good stuff.

  • wfingerdo

    •

    Mar 27, 2024

    We are looking forward to the new version! If you need some testers, please let a few of us know! I am working on some large copy projects that have millions and millions of small files. Just reading the directory takes several hours and the copy process right now takes almost 2 weeks to complete between servers. Thank you for continuing to develop this product!

  • Ole Aldric

    •

    Apr 11, 2024

    Btw, will this include file verification by any chance?

    • Code Sector

      Team•

      Apr 11, 2024

      Yes, multiple threads will be used to verify each target.

  • Artem Moshkovich

    •

    May 15, 2024

    @Code Sector Upon running TC 4 Alpha and testing a single (large) file copy from one location to another, the new "Threads" column in the UI doesn't appear and the Log reads an entry that says "Switching to single-thread mode." Any idea why? What can be done to ensure that the multi-thread function activates?

    • Hammerfest

      •

      May 27, 2024

      That is correct, the threads being discussed here is allowing it to do multiple files at once vs one file at a time (traditional/windows default), copying a single LARGE contiguous file is fastest in a single pipe

  • quantum3k

    •

    Aug 21, 2024

    Wow! great feature. Did in MacOS also this feature be implemented ?

  • Brian Chan

    •

    Sep 6, 2024

    "Switching to single-thread mode." doesn’t switch to single-thread mode.

    It’s quite obvious when copying to an SMR external drive where transfer speeds eventually start crashing to zero and every file that has been transferred has 2-3 fragments.

    On 3.17 file transfers are single thread and files get transferred 1 by 1 and there is no fragmentation, and transfer speeds remain more or less constant.

    I suspect the ‘thread’ selection doesn’t change the number of threads from the default 2 threads.

  • Preetham Manjunatha

    •

    Jan 1, 2025

    Is this multithreaded feature available in TeraCopy Pro 4? I installed the TeraCopy Pro 4 beta and was not able to see the Threads tab. Am I missing something?