eina_file: speed up listing of directories on Windows
authorVincent Torri <vincent.torri@gmail.com>
Tue, 7 May 2019 10:07:19 +0000 (11:07 +0100)
committerHermet Park <hermetpark@gmail.com>
Wed, 8 May 2019 04:34:50 +0000 (13:34 +0900)
commit3b2a21067e9e519e57f6b760c5d3fe2cb14eca19
tree8bbb3162bd5f4c47b34a78870edae075f59821fe
parent95260c0f175bb93b2daaa01945b4f241f19e4f94
eina_file: speed up listing of directories on Windows

Summary:
forbid the creation of short name (legacy of DOS)

Without optimisation

1. using only Win32 API, just iterating over directories (in micro seconds) :
  10 files : 47
  1000 files : 270
  100000 files : 73227
2. using eina_file_dir_list() with a callback which does nothing :
  10 files : 53
  1000 files : 265
  100000 files : 69624

usually there is a small overhead for eina API, which is normal

With optimisation

1. using only Win32 API, just iterating over directories (in micro seconds) :
  10 files : 51
  1000 files : 256
  100000 files : 33345
2. using eina_file_dir_list() with a callback which does nothing :
  10 files : 53
  1000 files : 251
  100000 files : 33832

speed up with 1000 files and more. Twice faster with 100000 files

Test Plan: benchmark program

Reviewers: raster, cedric, zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8842
src/lib/eina/eina_file_win32.c