may be AV is impacting the result but i start by a COPY to tmpfile so this file should already be in the cache and should have been scanned by the AV.

i tried to add your line in my code. the result is
 Code:
    size   time1   time2  filename
      91       0       0  .\test\file000.ini
    2019       0       0  .\test\file001.ini
    7553      47      16  .\test\file002.ini
   34527     484      47  .\test\file003.ini
   69058    1094     141  .\test\file004.ini
  103587    1859     250  .\test\file005.ini
  138116    2796     375  .\test\file006.ini

This is very near from the previous results !!!

if i have free time, i'll try to test a new version of ini functions based on a "ini handle" in spite of array of strings. The idea is that IniArray loads data in a global internal array and returns a handle. Next calls to ReadIniArray, IniSections or IniKeys just used this handle. I hope duplicating of an integer is much more faster than duplicating an array.

Theorically, impact is null on functions but navigation in the inifile with access to the 3D array becomes impossible (this should not be used).
This solution also needs to add an IniClose function to free memory array and handle.
_________________________
Christophe