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

アプリケーションのパフォーマンスの向上に関する質問です。これは、ソフトウェアアーキテクチャの選択からアルゴリズムの選択までさまざまです。

14
Javaでのオブジェクト作成を避けるべきですか?
同僚から、Javaオブジェクトの作成は実行できる最も高価な操作であると言われました。したがって、できる限り少ないオブジェクトを作成することしかできません。 これは、オブジェクト指向プログラミングの目的をやや損なうようです。オブジェクトを作成していない場合、最適化のために1つの長いクラスCスタイルを記述しているだけですか?

1
ネイティブのES6がbluebirdよりも遅く、より多くのメモリを消費するのはなぜですか?
ではこのベンチマーク、スイートは、ブルーバード約束に比べES6の約束を完了するまでに4倍の時間がかかり、多くのメモリと3.6倍を使用しています。 JavaScriptライブラリは、Cで記述されたv8のネイティブ実装よりもはるかに高速で軽量になります。Bluebirdのpromiseは、ネイティブのES6のpromiseとまったく同じAPIを備えています(さらに、多数の追加のユーティリティメソッド)。 ネイティブの実装は間違って書かれているだけですか、それとも私が見逃している他の側面がありますか?

30
コーディングの際にマイクロ最適化は重要ですか?
最近、PHPでisset()がstrlen()よりも高速だった理由を調べるために、Stack Overflowについて質問しました。これにより、読み取り可能なコードの重要性と、コードのマイクロ秒のパフォーマンスの改善が考慮に値するかどうかについて疑問が生じました。 私の父は退職したプログラマーであり、私は彼に応答を示しました。彼は、コーダーがマイクロレベルでもコードのパフォーマンスを考慮しない場合、優れたプログラマーではないことを完全に確信していました。 確かではありません-おそらく計算能力の向上は、この種のマイクロパフォーマンスの改善を考慮する必要がなくなったことを意味しますか?おそらく、この種の検討は実際の言語コードを書く人次第でしょうか?(上記の場合のPHPの)。 環境要因が重要になる可能性があります-インターネットは世界のエネルギーの10%を消費します。何百万ものウェブサイトで何兆回も複製されると、数マイクロ秒のコードがどれだけ無駄になるのだろうか? できればプログラミングに関する事実に基づいて答えを知りたいです。 コーディングの際にマイクロ最適化は重要ですか? 25の答えの私の個人的な要約、すべてに感謝します。 非常にまれな状況でのみ、マイクロ最適化について本当に心配する必要がある場合があります。ほとんどの場合、信頼性と読みやすさがはるかに重要です。ただし、ときどきマイクロ最適化を検討しても害はありません。基本的な理解は、次のようなコーディングの際に明らかに悪い選択をしないようにするのに役立ちます。 if (expensiveFunction() || counter < X) あるべき if (counter < X || expensiveFunction()) (@ zidarsk8の例)これは安価な関数である可能性があるため、コードを変更するとマイクロ最適化になります。しかし、基本的に理解していれば、そもそも正しく書くことができるので、その必要はありません。

30
「より高速な」プログラマになるにはどうすればいいですか?
私の最後の仕事の評価には、ただ一つの弱点が含まれていました:適時性。私はこれを改善するためにできることをすでに知っていますが、私が探しているのはさらにいくつかです。 品質を犠牲にすることなく出力の速度を上げるために何をするかについてのヒントやアドバイスはありますか? タイムラインをどのように推定し、それに固執しますか?より短い期間でより多くのことを成し遂げるために何をしますか? フィードバックは大歓迎です、ありがとう、

30
開発者に遅い開発マシンを与えると、コードはより速く/より効率的になりますか?[閉まっている]
開発者に絶叫する高速マシンを提供するとします。WPFベースのVS2010は非常に高速にロードされます。次に、開発者は、自分のボックスで正常に動作するWPFまたはWPF / eアプリケーションを作成しますが、現実の世界でははるかに低速です。 この質問には2つの部分があります... 1)開発者に遅いマシンを提供するということは、結果のコードがより高速またはより効率的であることを意味しますか? 2)開発者に高速のIDEエクスペリエンスを提供し、「典型的な」ランタイムエクスペリエンスを提供するにはどうすればよいですか? 更新: 記録のために、経営陣に対して率直な対応を準備しています。これは私の考えではありません。あなたの人々は、クライアントの誤った要求を修正するのを手伝っています。より多くの弾薬と、これにいつどこでアプローチするかについて言及してくれてありがとう。次のような有効なユースケースを+1しました。- 特定のサーバー側プログラミングの最適化 -テストラボ - 最高品質のグラフィックカードではなく、より良いサーバーを購入する可能性
130 ide  testing  performance 

11
C ++はJITを使用したJVMまたはCLRよりも高速であるという主張を裏付けるものは何ですか?[閉まっている]
多くの質問で気づいたSEの繰り返しのテーマは、C ++がJavaのような高レベル言語よりも高速で効率的であるという継続的な議論です。反論は、最近のJVMまたはCLRは、増加するタスクのJITなどのおかげで同じように効率的であり、C ++ は、あなたが何をしていて、なぜ特定の方法で物事をしているのかを知っている場合にのみ効率的であるということですパフォーマンスの向上に値します。それは明らかであり、完全に理にかなっています。 JVMやCLRよりもC ++で特定のタスクが高速である理由と方法についての基本的な説明(そのようなことがある場合)を知りたいのですが?JVMまたはCLRが実行時にJITコンパイルの処理オーバーヘッドをまだ持っているのに対して、C ++がマシンコードにコンパイルされているからでしょうか? トピックを調査しようとすると、C ++が高性能コンピューティングにどのように利用できるかを正確に理解することに関する詳細な情報なしで、上で概説したのと同じ議論だけを見つけます。
119 java  c++  performance  jit 

15
メソッドのメモリとパフォーマンスの速度を最適化するタイミング
私は最近Amazonでインタビューしました。コーディングセッション中に、インタビュアーはメソッドで変数を宣言した理由を尋ねました。私は自分のプロセスを説明し、彼はより少ない変数で同じ問題を解決するように私に挑戦しました。例えば、私が開始(これはインタビューからではなかった)方法A、次いで向上にそれを、方法B除去することによってint s。彼は喜んでおり、これはこの方法によってメモリ使用量を減らすだろうと言った。 私はその背後にあるロジックを理解していますが、私の質問は次のとおりです。 方法Aと方法B、またはその逆を使用するのが適切な場合 メソッドAがint s宣言されているため、メモリ使用量が高くなることがわかりますが、実行する必要があるのは1つの計算だけa + bです。一方、方法Bではメモリ使用量は少なくなりますが、a + b2回、つまり2回計算する必要があります。あるテクニックを他のテクニックよりもいつ使用するのですか?または、テクニックの1つは常に他よりも優先されますか?2つの方法を評価する際に考慮すべきことは何ですか? 方法A: private bool IsSumInRange(int a, int b) { int s = a + b; if (s > 1000 || s < -1000) return false; else return true; } 方法B: private bool IsSumInRange(int a, int b) { if (a + b …

14
コンパイラの最適化に依存するコードを書くのは悪い習慣ですか?
私はいくつかのC ++を学習してきましたが、多くの場合、関数内で作成された関数から大きなオブジェクトを返す必要があります。参照渡し、ポインターを返し、参照型ソリューションを返すことはわかっていますが、C ++コンパイラー(およびC ++標準)が戻り値の最適化を許可していることも読んでいます。そのすべての時間とメモリを節約します。 オブジェクトが値によって明示的に返されると、構文がより明確になり、一般的にコンパイラはRVOを使用してプロセスをより効率的にするようになりました。この最適化に依存するのは悪い習慣ですか?ユーザーにとってコードがより明確で読みやすくなりますが、これは非常に重要ですが、コンパイラーがRVOの機会をつかむと仮定する必要がありますか? これはマイクロ最適化ですか、それともコードを設計するときに留意すべきことですか?
99 c++  performance 

12
最新のコンパイラーでは、関数呼び出しのコストは依然として重要ですか?
私は宗教人であり、罪を犯さないように努力しています。それが、私がきれいなコード聖書によって命じられたいくつかの戒めに従うために、小さな(それよりも小さい、ロバート・C・マーティンを言い換える)関数を書く傾向がある理由です。しかし、いくつかのものをチェックしながら、私はこの投稿に行き、その下でこのコメントを読みました: 言語によっては、メソッド呼び出しのコストがかなり高くなる可能性があることに注意してください。ほとんどの場合、読み取り可能なコードの作成とパフォーマンスコードの作成にはトレードオフがあります。 高性能の最新コンパイラーの豊富な業界を考えると、この引用文はどのような条件下でも今でも有効ですか? それが私の唯一の質問です。そして、それは長い関数を書くべきか小さな関数を書くべきかということではありません。私はあなたのフィードバックが私の態度を変えることに貢献するかもしれないし、しないかもしれないことを強調し、冒bl者の誘惑に抵抗することはできません。

6
不変性はJavaScriptのパフォーマンスを低下させますか?
JavaScriptでは、データ構造を不変として扱う最近の傾向があるようです。たとえば、オブジェクトの単一のプロパティを変更する必要がある場合は、新しいプロパティを使用して新しいオブジェクト全体を作成し、古いオブジェクトから他のすべてのプロパティをコピーして、古いオブジェクトをガベージコレクトしてください。(とにかく私の理解です。) 私の最初の反応は、パフォーマンスに悪いように聞こえます。 しかし、Immutable.jsやRedux.jsのようなライブラリは、私よりも賢い人によって書かれており、パフォーマンスに強い関心を持っているようです。そのため、ガベージ(およびパフォーマンスへの影響)の理解が間違っているのではないかと思います。 私が見逃している不変性にパフォーマンス上の利点はありますか?

15
JavaがC ++よりも高速になるのはなぜですか?
ベンチマークでJavaがC ++よりも優れている場合があります。もちろん、C ++のパフォーマンスが優れている場合もあります。 次のリンクを参照してください。 http://keithlea.com/javabench/ http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ http://blog.cfelde.com/2010/06/c-vs-java-performance/ しかし、これはどのように可能ですか?解釈されたバイトコードは、コンパイルされた言語よりも高速である可能性があるということを、私の心を揺さぶります。 誰か説明してもらえますか?ありがとう!
79 java  c++  performance 

10
読みやすいコードと読みにくい高速コード。いつ線を越えるか?
コードを書くときは、コードをできる限りクリーンで読みやすいものにするように常に心がけています。 ときどき、ラインを越えて、すっきりしたきれいなコードから少しugいコードに移行して、より速くする必要があるときがあります。 その線を横切るのはいつですか?

7
1 <10の比較は1 <1000000よりも安価ですか?
z-indexCSSのaのカウントとして〜10億を使用し、比較を検討する必要がありました。非常に大きな数値と非常に小さな数値との比較で、ALUレベルでパフォーマンスに違いはありますか? たとえば、これら2つのスニペットのうちの1つは他のスニペットよりも高価ですか? snippet 1 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 10000000000000) { //do nothing } } snippet 2 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 1000) { //do nothing } }
65 performance  cpu 

18
なぜ人々はまだJavaが遅いと言うのですか?[閉まっている]
SOや他の場所で長い間、Javaは遅いという評判があります。ジョークから質疑応答における多くのコメントまで、人々はJavaが90年代のJavaの経験だけに基づいて遅いとまだ信じています。 これが私の問題です。Javaが遅いと人々が信じる(ほとんどの)理由を反証しています。小さなこと以外は、Javaは非常に高速です。 それでは、なぜ人々は今でもJavaが高速であると信じることを拒否しているのでしょうか?C / C ++ではないものが遅いというのは彼らの考え方の一部ですか?人々が時間をかけてチェックしないからでしょうか?それは人々が偏っているからでしょうか?
61 java  performance 

14
解釈されたコードとコンパイルされたコードのパフォーマンスに関する一般的なステートメントを作成できますか?
企業が使用すべき推奨事項に到達するために、2つのテクノロジーを比較しています。テクノロジーBのコードがマシンコードにコンパイルされる間、テクノロジーAのコードは解釈されます。私の比較では、通訳プロセスの追加のオーバーヘッドがないため、一般にTech Bはより良いパフォーマンスを発揮すると述べています。また、プログラムはさまざまな方法で作成できるため、技術Aで作成されたプログラムは技術Bで作成されたプログラムよりも優れている可能性があると述べています。 レビューのためにこのレポートを提出したとき、レビュー担当者は、一般に解釈プロセスのオーバーヘッドがTech Bのパフォーマンスが優れていると結論付けるのに十分な大きさになる明確な理由はないと述べました。 だから私の質問は、コンパイル/解釈されたテクノロジーのパフォーマンスについて何か言うことができますか?コンパイルされたものが一般的に解釈されたものよりも速いと言える場合、どうすればレビュー担当者に私のポイントを納得させることができますか?

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