配列内の文字列の数(それらは定数のままで変更されない)を格納し、私たちはできるだけ早くルックアップを達成したいと考えています。以下のどちらがより高速なアクセスを提供します:静的に割り当てられた配列へのアクセスVSへの静的に割り当てられた配列へのポインタによるアクセス
アプローチ1:
const char* string_literal[] = {"Test1","Dummy","Dummy","Test2","Test3","Dummy"}; // storing as string literals
... ... ... ...
... ... ... ...
const char* string_literal1000[]= {"Beta1","Beta2","Beta3"};
アプローチ2:
const char test1ptr[] = "Test1",
const char test2ptr[] = "Test2",
const char test3ptr[] = "Test3",
const char dummyptr[] = "Dummy",
const char* string_ptr1 [] = {test1ptr,dummyptr,dummyptr,test2ptr,test3ptr,dummyptr}; // storing as pointers
... ... ...
const char* string_ptr1000[] = {"Beta1","Beta2","Beta3"};
かを。それはアプローチ1であり、アプローチ2は同じパフォーマンスになりますか?
注:
- は、私は(平均20の文字列に例えば "TEST1" をconatingレコードの1000(例えばstring_ptr1、sting_ptr2などまたはstring_literal1、string_literl2など)の周りに持っているだろう、TEST2" など。
- 「ダミー」わずか数レコードに表示されます
string_literal1000はコンパイルされません – sehe
また、string_ptr1000も、それ以外にも、実際にはパフォーマンスヒットを探すべき世界の最後の場所です。 –
これは私が今まで見た中で最もばかげたミクロ最適化です。あなたの時間を無駄にせず、ちょうどプログラム。 –