2

I am using [NSFileManager attributesOfItemAtPath:error:] function for fetching attributes of file. But sometimes my application cpu is going upto 100%. I am using this function for 100k(approx.) files.
Sample of my application:

                                2128 -[NSFileManager attributesOfItemAtPath:error:]
                                  2128 +[NSFileAttributes _attributesAtPath:partialReturn:filterResourceFork:error:]
                                    2123 _attributesAtPath
                                      2072 listxattr
                                      29 realloc
                                        18 realloc
                                        11 szone_size
                                      22 _attributesAtPath
                                    5 _sysenter_trap  

Can anyone please help me out?

Parag Bafna
  • 22,812
  • 8
  • 71
  • 144

2 Answers2

4

I am using stat.

#import <sys/stat.h>

struct stat stat1;
if( stat([inFilePath fileSystemRepresentation], &stat1) )
      // something is wrong 
long long size = stat1.st_size;
printf("Size: %lld\n", stat1.st_size);
Parag Bafna
  • 22,812
  • 8
  • 71
  • 144
1
  • SYSENTER is a companion instruction to SYSEXIT. The trap is a subset of a thread’s complete context. So, the trap frame keeps information about the current thread context so it could restore it with SYSEXIT instruction.

Link about Sysenter_traps.

It seems that you are overloading your main thread. Thats why Cpu is on 100%

Dream.In.Code
  • 399
  • 3
  • 5
  • so trap frame is saving my main thread state. should i run that function on secondary thread? – Parag Bafna May 14 '12 at 10:26
  • yes.. it's the best you can do(and try to separate your 100k file's on pack's... if 100 files where sent .. send another 100 files.. it will reduce the usage of device resources) – Dream.In.Code May 14 '12 at 10:28