2012-05-14 14 views
1

私は[NSFileManager attributesOfItemAtPath:error:]ファイルの属性を取得する機能を使用しています。 しかし、時々私のアプリケーションCPUは最大100%になるでしょう。私は100k(約)のファイルに対してこの機能を使用しています。私のアプリケーションの
サンプル:CPUはattributesOfItemAtPathでレイズします。エラー:

       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 

は誰も私を助けてくださいことはできますか?

答えて

3

私は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); 
1
  • SYSENTERSYSEXITへのコンパニオン命令です。トラップは、スレッドの完全なコンテキストのサブセットです。したがって、トラップフレームは現在のスレッドコンテキストに関する情報を保持し、SYSEXIT命令を使用してそれを復元することができます。

Sysenter_trapsのリンク。

メインスレッドがオーバーロードされているようです。それでCpuが100%である理由

+0

トラップフレームがメインスレッドの状態を保存しています。私はセカンダリスレッドでその関数を実行する必要がありますか? –

+0

はい..それはあなたができる最高です(そして100kファイルをパックに分けようとします...もし100個のファイルがどこに送られれば100個の別のファイルを送りますか..それはデバイスリソースの使用量を減らします) –

関連する問題