Re: Bad file access on the rise

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/08/2013 09:53 AM, Steve Grubb wrote:
> On Saturday, June 08, 2013 09:34:22 AM Steve Grubb wrote:
>> Does opening with noatime really make a measurable difference (assuming it 
>> worked)? I suspect not since what we have now is 2 syscalls. It would
>> probably  be faster to load icons without trying to set NOATIME.
> 
> Answering my own question....
> 
> #include <stdio.h>
> #define __USE_GNU
> #include <fcntl.h>
> #include <unistd.h>
> #include <string.h>
> 
> void noatime(void)
> {
>         int fd = open("/usr/share/icons/hicolor/48x48/apps/firefox.png", O_RDONLY|O_NOATIME);
>         if (fd>=0)
>                 close(fd);
>         else {
>                 fd = open("/usr/share/icons/hicolor/48x48/apps/firefox.png", O_RDONLY);
>                 if (fd>=0)
>                         close(fd);
>         }
> }
> 
> void atime(void)
> {
>         int fd = open("/usr/share/icons/hicolor/48x48/apps/firefox.png", O_RDONLY);
>         if (fd>=0)
>                 close(fd);
> }
> 
> int main(int argc, char *argv[])
> {
>         int i, mode=0;
>         if (argc == 2 && strcmp("noatime", argv[1]) == 0)
>                 mode = 1;
> 
>         for (i=0; i<5000; i++) {
>                 if (mode)
>                         noatime();
>                 else
>                         atime();
>         }
>         return 0;
> }
> 
> As a normal user:
> 
> $ time ./test noatime
> 
> real	0m12.645s
> user	0m0.003s
> sys	0m0.159s
> 
> $ time ./test atime
> 
> real	0m0.019s
> user	0m0.002s
> sys	0m0.016s
> 
> Way faster doing a normal open. As root:

Bad test.  The first run took the hit for getting the file info into
page cache, after that, everything was run from cache and you got the
second result above and the results below.  You have to make sure that
from run to run the cache state of the file in question is identical.

> 
> # time ./test noatime
> 
> real	0m0.019s
> user	0m0.000s
> sys	0m0.019s
> 
> # time ./test atime
> 
> real	0m0.019s
> user	0m0.001s
> sys	0m0.017s
> 
> No real difference between them.
> 
> -Steve
> 

-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux