私はCで書かれた数値コードをプロファイリングしています(ProfilerはInstruments、コンパイラはMac OSX 10.11.6ではclang
です)。実行時間の77.3%が_platform_memmove$VARIANT$Haswell
に費やされています。
アセンブリ出力では、上記の関数はDYLD-STUB$$memcpy
によって呼び出されます。しかし、私はmemcpy
が私のCコードにはありません(私はいくつかのmalloc
を持っています)。
さらに深くなると、組み立てコマンドrep
がかなり時間を費やすことになります。 this投稿から、rep
は役に立たないと思われます。なぜコンパイラはそれを挿入しますか?そしてmemcpy
はどこから来たのですか?
また、-g
でコンパイルしようとしましたが、_platform_memmove$VARIANT$Haswell
はもうほとんどうごめいていません。
コードを投稿できますか?測定にはどのような差異/標準偏差がありますか? '-g'でランタイム全体がどのように変化しますか? – EOF
memcpyで 'rep'が実際のコピーをしています。 – 2501
あなたがこれまでに行ったことを実際に伝え、問題の原因を突き止めるために。 – Koshinae