Skip to content
Snippets Groups Projects
  • Jannik Glückert's avatar
    f80a8b42
    libstdc++: Also use sendfile for big files · f80a8b42
    Jannik Glückert authored
    
    We were previously only using sendfile for files smaller than 2GB, as
    sendfile needs to be called repeatedly for files bigger than that.
    
    Some quick numbers, copying a 16GB file, average of 10 repetitions:
        old:
            real: 13.4s
            user: 0.14s
            sys : 7.43s
        new:
            real: 8.90s
            user: 0.00s
            sys : 3.68s
    
    libstdc++-v3/ChangeLog:
    
    	* acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
    	* config.h.in: Regenerate.
    	* configure: Regenerate.
    	* src/filesystem/ops-common.h (copy_file_sendfile): Define new
    	function for sendfile logic. Loop to support large files. Skip
    	zero-length files.
    	(do_copy_file): Use it.
    
    Signed-off-by: default avatarJannik Glückert <jannik.glueckert@gmail.com>
    f80a8b42
    History
    libstdc++: Also use sendfile for big files
    Jannik Glückert authored
    
    We were previously only using sendfile for files smaller than 2GB, as
    sendfile needs to be called repeatedly for files bigger than that.
    
    Some quick numbers, copying a 16GB file, average of 10 repetitions:
        old:
            real: 13.4s
            user: 0.14s
            sys : 7.43s
        new:
            real: 8.90s
            user: 0.00s
            sys : 3.68s
    
    libstdc++-v3/ChangeLog:
    
    	* acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
    	* config.h.in: Regenerate.
    	* configure: Regenerate.
    	* src/filesystem/ops-common.h (copy_file_sendfile): Define new
    	function for sendfile logic. Loop to support large files. Skip
    	zero-length files.
    	(do_copy_file): Use it.
    
    Signed-off-by: default avatarJannik Glückert <jannik.glueckert@gmail.com>