問題タブ [eastl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - EASTL と STL、std::vector にこのようなパフォーマンスの違いがあるのはなぜですか?::オペレーター[]
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html
によるとvector<uint64>::operator[]
、「一般的に使用されている商用バージョンの STL」よりも EASTL の方が 2% から 70% 高速です。
商用バージョンの STL が比較を不公平にする範囲チェックを使用しない限り、このような単純な操作でこのような速度の違いが生じる可能性はありますか?
アップデート:
答えは、範囲チェックを使用するバージョンと比較して、EA エンジニアが単にごまかしているということです...
stl - 元のEASTLライブラリはどこでダウンロードできますか?
私はすでにGitHubのことを知っています。しかし、それはオリジナルのEASTLではありません。
gpl.ea.comについても聞いた。
オープンソースプロジェクトがあります。
そのプロジェクトにEASTLが含まれていると聞きました。
それで私は彼らのプロジェクトでそれを見つけようとしましたが失敗しました。
それについて少し知っているなら、何か教えてください。
ありがとう。
c++ - C++ で #define マクロを使用して、異なる名前空間から実装を選択する
ゲーム用に開発しているマルチプラットフォーム エンジンは、メモリ、パフォーマンス、および移植性の理由から、STL を置き換えるために EASTL を使用しています。EASTL は次の場所にあります:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html
Visual Studio は STL のデバッグに非常に適しているため、エンジンの開発中は Windows で EASTL を使用していません。また、std::queue、std::deque などの一部の STL コンテナーは、EASTL では使用できません。Windows でも Eastl::string を使用していることは問題ではありません。これはデバッグに適しているためです。
私たちが今までやってきたことは、
GIN_USE_EASTL は Windows では 0 として定義されます。エンジンはGinkgoと呼ばれ、GINの由来です。
リスト、ベクターなどを使用しています...このように
これは非常にうまく機能します。しかし、文字列またはキューを使用する場合、上で説明した理由により、次のように記述する必要があります。
これが最適ではないため、ここに投稿する理由です! 私がやりたいことは、どの実装を使用するかを考えずに、エンジン内のすべてに ginstl:: マクロを使用することです。したがって、この問題に対する私のアプローチは次のとおりです。
しかし残念なことに、#define マクロでは :: が許可されていないため、これは機能しません。同じことを達成する方法はありますか (特定のデータ構造に使用する実装を指定することができます)、どういうわけか異なる方法はありますか? 私は行くことができました
しかし、私は上からの構造を好むでしょう! この問題を回避する方法 (カスタム プリプロセッサを作成する以外) はありますか?
c++ - size() メソッドの EASTL ベクトル設計
での vector の実装について質問がありEASTL
ます。リンクはこちら。
つまり、メソッドでsize()
. これは次のようになります。
size_type
uint32_t
、mpBegin
/はmpEnd
T* ポインターです。
(mpEnd - mpBegin) からの uint32_t へのキャストがベクトル内の要素の数と等しい方法がわかりません。で割るべきではありませんsizeof(T)
か?それ以外の場合は、ベクター内のすべての要素のサイズをバイト単位で取得するだけですか?
私は何が欠けていますか?
編集:EASTLベクトルがベクトルのstl定義に従っていない場合を除きますが、データが見つからず、stlベクトルをeastlベクトルに置き換えることが可能であると思われます
debuggervisualizer - EASTL VS2012 / 2013 用のカスタム ビジュアライザー
ここから EASTL を入手しました - https://github.com/paulhodge/EASTL
デバッグのために、カスタム ビジュアライザー VS2012/2013 を作成しています。
「eastl::vector」は正常に機能しますが、「eastl::map」は機能しません。
これが私のコードです
VSが「node_type」を認識していないようです
返信ありがとうございます。
c++ - Eastl ライブラリのビルド方法
最近、Linux 3.10 x86_64 で Eastl ライブラリをビルドしようとしていますが、失敗しました。
https://github.com/electronicarts/EASTL
ここに「ソースのコンパイル」Webページがあります:
https://github.com/electronicarts/EASTL/blob/master/CONTRIBUTING.md
指示に従って libEASTL.a を取得します , ar -t libEASTL.a get :
次に、小さなテスト ソース:
によってコンパイルされました:
g++ --std=c++11 -O2 test1.cpp -I/home/mars/tools/EASTL-master/include -I/home/mars/tools/EASTL-master/test/packages/EABase/include/Common /home/mars/tools/EASTL-master/thelib/libEASTL.a -o test1.exe
リンクエラーが発生します:
「演算子 new[](unsigned long, char const*, int, unsigned int, char const*, int)」への未定義の参照
Eastl ライブラリには、ヘッダー ファイルを簡単に構築してインクルードする方法が必要です。
編集 :
この新しい機能を追加した後、リンクエラーはなくなりました!!!
したがって、残っている唯一の質問は次のとおりです。この新しい関数を正しくコーディングする必要があります!!!! それを行うには、どのドキュメントでも手がかりを得ることができますか?!
編集2:
このウェブサイトの情報によると:
https://wuyingren.github.io/howto/2016/02/11/Using-EASTL-in-your-projects/
その後、作業は完了です。