タグ付けされた質問 「performance」

コードおよびアプリケーション効率の測定または改善に関する質問。

9
Android RecyclerviewとViewholderを使用したListView
私は最近RecyclerView、Android 5.0でリリースされたAndroidに出会いました。これは、ViewHolderパターンが組み込まれたRecyclerView従来のカプセル化ListViewされたもので、毎回作成するのではなく、ビューの再利用を促進しているようです。 を使用する他の利点は何RecyclerViewですか?パフォーマンスの点で両方に同じ効果がある場合、なぜRecyclerView`を好むのでしょうか? 編集する 私は人々が同様の質問をし、答えは決定的なものではないことを発見しました。記録保持のためにここに追加しました。 RecyclerviewとListview ListViewを置き換えるためにRecyclerViewを使用する必要がありますか? RecyclerViewにonItemClickListener()がないのはなぜですか?そしてRecyclerViewはListviewとどのように違うのですか?

5
なぜarr = []がarr = new Arrayより速いのですか?
私はこのコードを実行し、以下の結果を得ました。なぜ[]速いのか知りたいです。 console.time('using[]') for(var i=0; i<200000; i++){var arr = []}; console.timeEnd('using[]') console.time('using new') for(var i=0; i<200000; i++){var arr = new Array}; console.timeEnd('using new') 使用[]:299ms 使用new:363ms ここレイノスのおかげで、このコードのベンチマークと、変数を定義するためのいくつかのより可能な方法があります。

30
あなたが見た中で最もばかげた悲観論は何ですか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 早すぎる最適化はすべての悪の根源であることは誰もが知っています。さらに悪いのは悲観化です。誰かが「最適化」を実装すると、それはより高速になると考えられますが、遅くなり、バグが多く、メンテナンスが困難になります。 ?

2
gccのffast-mathは実際に何をしますか?
gccの--ffast-mathフラグを使用すると、浮動小数点演算の速度が大幅に向上し、IEEE標準の範囲外になることを理解していますが、オンになっているときに実際に何が起こっているかについての情報を見つけることができません。誰かが詳細のいくつかを説明して、フラグがオンまたはオフの場合に何かがどのように変化するかについての明確な例を示すことができますか? 同様の質問についてSOを掘り下げてみましたが、ffast-mathの仕組みを説明するものは何も見つかりませんでした。

3
foreach、lambdaを使用したarray_map、static関数を使用したarray_mapのパフォーマンス
配列を別の配列に変換するために使用されるこれら3つのアプローチのパフォーマンスの違いは(ある場合)何ですか? 使用する foreach array_mapラムダ/クロージャー機能で使用する array_map「静的」関数/メソッドで使用する 他のアプローチはありますか? 私自身を明確にするために、例を見てみましょう。すべて同じことを行います-数値の配列に10を乗算します。 $numbers = range(0, 1000); Foreach $result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result; ラムダ付きの地図 return array_map(function($number) { return $number * 10; }, $numbers); 文字列参照として渡される「静的」関数を使用したマップ function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers); …

4
ByteBuffer.allocate()とByteBuffer.allocateDirect()
へallocate()たりとallocateDirect()、疑問です。 ここ数年、私はDirectByteBuffersがOSレベルでのダイレクトメモリマッピングであるため、sよりget / put呼び出しの方が速く実行できるという考えに固執していHeapByteBufferます。私は今まで、状況に関する正確な詳細を知ることに本当に興味がありませんでした。2つのタイプのByteBufferのどちらがより高速で、どのような条件であるかを知りたい。

8
JavaScriptにおける配列とオブジェクトの効率
おそらく何千ものオブジェクトを持つモデルがあります。それらを格納し、IDを取得したら単一のオブジェクトを取得する最も効率的な方法は何だろうと思っていました。IDは長い数字です。 これらは私が考えていた2つのオプションです。オプション1では、インデックスが増加する単純な配列です。オプション2では、これは連想配列であり、違いがある場合はオブジェクトです。私の質問は、ほとんどの場合単一のオブジェクトを取得する必要があるが、時にはそれらをループしてソートする必要がある場合、どちらがより効率的かということです。 非連想配列のオプション1: var a = [{id: 29938, name: 'name1'}, {id: 32994, name: 'name1'}]; function getObject(id) { for (var i=0; i < a.length; i++) { if (a[i].id == id) return a[i]; } } 連想配列を使用したオプション2: var a = []; // maybe {} makes a difference? a[29938] = {id: 29938, name: 'name1'}; …


13
.NET例外はどのくらい遅いですか?
例外をスローするタイミングとスローしないタイミングについての議論はしたくありません。簡単な問題を解決したいと思います。例外をスローしないという主張は99%の確率でスローされますが、反対側は(ベンチマークテストを使用して)速度は問題ではないと主張します。私は、どちらか一方に関係する多数のブログ、記事、および投稿を読みました。どっち? 答えからのいくつかのリンク:スキート、マリアーニ、Brumme。

11
レコードが存在するかどうかを確認する最速の方法
タイトルが示すように...レコードがテーブルに存在するかどうかを判断するために、オーバーヘッドを最小限に抑えて最速の方法を見つけようとしています。 サンプルクエリ: SELECT COUNT(*) FROM products WHERE products.id = ?; vs SELECT COUNT(products.id) FROM products WHERE products.id = ?; vs SELECT products.id FROM products WHERE products.id = ?; 言う?と交換される'TB100'...第1および第2の両方のクエリは(...と言うまったく同じ結果を返します。1この会話のため)。最後のクエリは'TB100'期待どおりに返すかid、テーブルにない場合は何も返しません。 目的はid、テーブルにあるかどうかを把握することです。そうでない場合、プログラムは次にレコードを挿入します。そうである場合、プログラムはそれをスキップするか、この質問の範囲外の他のプログラムロジックに基づいてUPDATEクエリを実行します。 どちらが速く、オーバーヘッドが少ないですか?(これはプログラムの実行ごとに数万回繰り返され、1日に何度も実行されます)。 (M $提供のJDBCドライバーを介してJavaからM $ SQL Serverに対してこのクエリを実行)

13
C ++をコンパイルするために、WindowsをLinuxと同じ速さで実行するにはどうすればよいですか?
これはプログラミングの問題ではないことを知っていますが、関連があります。 私はかなり大きなクロスプラットフォームプロジェクトに取り組んでいます。WindowsではVC ++ 2008を使用します。Linuxではgccを使用します。プロジェクトには約40kのファイルがあります。Windowsは、同じプロジェクトをコンパイルおよびリンクする際に、Linuxよりも10倍から40倍遅いです。どうすれば修正できますか? Linuxでは20秒、Windowsでは3分を超える単一の変更増分ビルド。どうして?Linuxに「ゴールド」リンカーをインストールして、その時間を7秒まで短縮することもできます。 同様に、gitはWindowsよりもLinuxで10〜40倍高速です。 gitの場合、gitがWindowsを最適な方法で使用していない可能性がありますが、VC ++ですか?Microsoftは自社の開発者をできる限り生産的にしたいと考え、より高速なコンパイルはそのための長い道のりになると思います。たぶん彼らは開発者にC#を勧めようとしているのでしょうか? 簡単なテストとして、多数のサブフォルダーを含むフォルダーを見つけて、簡単なテストを行います dir /s > c:\list.txt Windowsの場合。キャッシュから実行するように、2回実行して2回目の実行の時間を計ります。ファイルをLinuxにコピーし、同等の2回の実行を行い、2回目の実行の時間を計ります。 ls -R > /tmp/list.txt まったく同じ仕様のワークステーションが2台あります。12gigのRAM、8コア、3.0GHzのHP Z600。〜400kファイルを含むフォルダーでは、Windowsは40秒かかり、Linuxは1秒未満かかります。 Windowsを高速化するために設定できるレジストリ設定はありますか?何ができますか? コンパイル時間に関連するいくつかのわずかに関連するリンク。必ずしもI / Oとは限りません。 どうやらWindows 10(Windows 7ではない)には、プロセスを閉じるとグローバルロックが保持されるという問題があるようです。複数のコア、したがって複数のプロセスでコンパイルすると、この問題が発生します。 この/analyseオプションはWebブラウザーをロードするため、パフォーマンスに悪影響を与える可能性があります。(ここでは関係ありませんが、知っておくと便利です)


8
if-return-returnまたはif-else-return?を使用する方が効率的ですか?
とのifステートメントがあるとしreturnます。効率の観点から、私は使用する必要があります if(A > B): return A+1 return A-1 または if(A > B): return A+1 else: return A-1 コンパイルされた言語(C)またはスクリプト化された言語(Python)を使用するとき、どちらを好むべきですか?

12
シールドクラスは本当にパフォーマンス上のメリットを提供しますか?
パフォーマンスをさらに向上させるには、クラスをシール済みとしてマークする必要があるという、多くの最適化のヒントを見つけました。 パフォーマンスの違いを確認するためにいくつかのテストを実行したところ、何も見つかりませんでした。私は何か間違ったことをしていますか?密封されたクラスがより良い結果をもたらすケースを見逃していますか? 誰かがテストを実行して違いを見ましたか? 学ぶのを手伝ってください:)

4
Java 8:ストリームとコレクションのパフォーマンス
Java 8は初めてです。APIの詳細はまだわかりませんが、新しい非公式のベンチマークを作成して、新しいStreams APIと古き良きコレクションのパフォーマンスを比較しました。 このテストでは、のリストをフィルタリングし、Integer偶数ごとに平方根を計算しての結果Listに格納しDoubleます。 これがコードです: public static void main(String[] args) { //Calculating square root of even numbers from 1 to N int min = 1; int max = 1000000; List<Integer> sourceList = new ArrayList<>(); for (int i = min; i < max; i++) { sourceList.add(i); } List<Double> result = new …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.