2

[NSFileManager attributesOfItemAtPath:error:]ファイルの属性を取得する関数を使用しています。しかし、時々私のアプリケーションのCPUは100%になります。この関数を100k(約)のファイルに使用しています。
私のアプリケーションのサンプル:

                                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  

誰か助けてくれませんか?

4

2 に答える 2

4

を使用して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);
于 2012-08-03T07:02:48.523 に答える
1
  • SYSENTERへのコンパニオン命令SYSEXITです。トラップは、スレッドの完全なコンテキストのサブセットです。そのため、トラップ フレームは現在のスレッド コンテキストに関する情報を保持するため、SYSEXIT 命令で復元できます。

Sysenter_trapsに関するリンク。

メインスレッドに過負荷をかけているようです。それがCPUが100%になっている理由です

于 2012-05-14T09:39:43.800 に答える