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

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


7
リスト内包表記と関数関数は、「forループ」よりも高速ですか?
Pythonでパフォーマンスの面では、リスト内包表記である、または機能が好きでmap()、filter()そしてreduce()速くforループよりも?forループがPython仮想マシンの速度で実行されるのに対し、技術的にはCの速度で実行されるのはなぜですか? 開発中のゲームで、forループを使用して複雑で巨大なマップを描画する必要があるとします。この質問は間違いなく関連性があります。たとえば、リスト内包が実際に高速である場合、(コードの視覚的な複雑性にもかかわらず)ラグを回避するためのはるかに優れたオプションです。

10
文字列に(文字列の)リストの要素が含まれているかどうかを確認する
次のコードブロックの場合: For I = 0 To listOfStrings.Count - 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next Return False 出力は次のとおりです。 ケース1: myString: C:\Files\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: True ケース2: myString: C:\Files3\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: False リスト(listOfStrings)には複数のアイテム(最小20)が含まれる場合があり、数千の文字列(myStringなど)に対してチェックする必要があります。 このコードを書くためのより良い(より効率的な)方法はありますか?

20
一方(1)対 for(;;)速度の違いはありますか?
ロングバージョン... より速いwhile (1)Perlスクリプトでの私の使用を見て、同僚が今日主張しましたfor (;;)。インタプリタが違いを最適化することを期待して、それらは同じであるべきだと私は主張しました。ループの反復と同じ数のwhileループで1,000,000,000を実行し、その間の時間を記録するスクリプトを設定しました。それほど大きな違いはありませんでした。私の同僚は、教授がwhile (1)比較1 == 1をしているfor (;;)ので、そうではないと彼が言ったと言った。C ++での100倍の反復回数で同じテストを繰り返しましたが、違いはごくわずかでした。ただし、これは、スクリプト言語と比較してコンパイルされたコードがどれだけ高速になるかを示すグラフィックの例でした。 短縮版... 抜け出すために無限ループが必要な場合に、while (1)よりも優先する理由はありますfor (;;)か? 注:質問から明確でない場合。これは、友人同士での純粋に楽しい学術的な議論でした。これは、すべてのプログラマーが悩むべき超重要な概念ではないことを認識しています。私(そして他の人も)がこの議論からいくつかのことを学んだ素晴らしい答えをすべてありがとう。 更新:前述の同僚は、以下の返答を検討しました。 埋もれる場合に備えて、ここに引用されています。 AMDアセンブリプログラマからのものです。彼は、Cプログラマ(人々)は自分のコードが非効率であることを理解していないと述べました。彼は本日言ったが、gccコンパイラーは非常に優れており、彼のような人々を廃業させた。たとえば彼は言って、while 1vs について教えてくれましたfor(;;)。私は今それを習慣から使用していますが、gccと特にインタープリターは最適化されているため、これらの両方の日に同じ操作(プロセッサーのジャンプ)を実行します。

13
SQLとアプリケーションで計算を実行する場合の長所と短所は何ですか
shopkeeper テーブルには次のフィールドがあります。 id (bigint),amount (numeric(19,2)),createddate (timestamp) たとえば、上の表があるとします。昨日のレコードを取得し、金額をセントに印刷してレポートを生成したいと思います。 1つの方法は、Javaアプリケーションで計算を実行し、簡単なクエリを実行することです Date previousDate ;// $1 calculate in application Date todayDate;// $2 calculate in application select amount where createddate between $1 and $2 次に、レコードをループしてJavaアプリケーションで金額をセントに変換し、レポートを生成します 別の方法は、SQLクエリ自体で計算を実行するようなものです。 select cast(amount * 100 as int) as "Cents" from shopkeeper where createddate between date_trunc('day', now()) - interval '1 day' …

4
Pythonの配列が遅いのはなぜですか?
array.array配列はボックス化されていないように見えるので、リストよりも高速になると予想していました。 ただし、次の結果が得られます。 In [1]: import array In [2]: L = list(range(100000000)) In [3]: A = array.array('l', range(100000000)) In [4]: %timeit sum(L) 1 loop, best of 3: 667 ms per loop In [5]: %timeit sum(A) 1 loop, best of 3: 1.41 s per loop In [6]: %timeit sum(L) 1 loop, best …

10
Android-ANRを調査するにはどうすればよいですか?
私のアプリがANR(Application Not Responding)をスローした場所を見つける方法はありますか?/ data内のtraces.txtファイルを確認したところ、アプリケーションのトレースが表示されました。これは私がトレースで見るものです。 DALVIK THREADS: "main" prio=5 tid=3 TIMED_WAIT | group="main" sCount=1 dsCount=0 s=0 obj=0x400143a8 | sysTid=691 nice=0 sched=0/0 handle=-1091117924 at java.lang.Object.wait(Native Method) - waiting on <0x1cd570> (a android.os.MessageQueue) at java.lang.Object.wait(Object.java:195) at android.os.MessageQueue.next(MessageQueue.java:144) at android.os.Looper.loop(Looper.java:110) at android.app.ActivityThread.main(ActivityThread.java:3742) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497) at dalvik.system.NativeStart.main(Native Method) …

9
動的でパーソナライズされたWebアプリケーションの適切な応答時間とは何ですか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 動的コンテンツとパーソナライゼーションを含む複雑なWebアプリケーションの場合、サーバーからの適切な応答時間はどのくらいですか(ネットワークの待ち時間とブラウザーのレンダリング時間を除く)。Facebook、Amazon、MyYahooなどのサイトについて考えています。関連する質問は、バックエンドサービスの適切な応答時間とは何ですか。

11
RTTIの価格はどれくらいですか?
RTTIを使用することによるリソースへの影響があることは理解していますが、それはどれくらいの大きさですか?私が見たどこでも、「RTTIは高価です」とだけ言っていますが、実際には、メモリ、プロセッサ時間、または速度を保護するベンチマークや定量的なデータを提供するものはありません。 では、RTTIはどれほど高価なのでしょうか。RAMが4MBしかない組み込みシステムで使用する可能性があるため、すべてのビットがカウントされます。 編集:S.ロットの回答に従って、私が実際に行っていることを含めた方が良いでしょう。 私はクラスを使用して、さまざまな長さのデータを渡し、さまざまなアクションを実行できるため、仮想関数のみを使用してこれを行うのは難しいでしょう。数個dynamic_castのs を使用すると、さまざまな派生クラスをさまざまなレベルを通過させながら、まったく異なる動作をさせることで、この問題を解決できるようです。 私の理解から、dynamic_castRTTIを使用しているので、限られたシステムで使用するのがどれほど実現可能か疑問に思っていました。
152 c++  performance  rtti 

19
Javaマトリックス数学ライブラリのパフォーマンス?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ランタイムが行列演算によって制限されているものを計算しています。(興味がある場合は、以下のいくつかの詳細。)この経験により、次の質問が生じました。 人々は、行列演算(たとえば、乗算、逆数など)のためのJavaライブラリのパフォーマンスの経験がありますか?例えば: ジャマ コルト Apacheコモンズ数学 私は何も検索しませんでした。 速度比較の詳細: Intel FORTRAN(ifort(IFORT)10.1 20070913)を使用しています。Apache commons math 1.2 matrix opsを使用してJava(1.6)で再実装し、そのすべての桁の精度に同意します。(Javaでそれを必要とする理由はあります。)(Javaダブルス、Fortranリアル* 8)。Fortran:6分、Java 33分、同じマシン。jvisualmプロファイリングは、RealMatrixImpl。{getEntry、isValidCoordinate}で費やされた多くの時間を示しています(これは、リリースされていないApache commons math 2.0ではなくなっているようですが、2.0はそれより速くありません)。FortranはAtlas BLASルーチン(dpotrfなど)を使用しています。 明らかに、これは各言語のコードに依存する可能性がありますが、ほとんどの場合、同等の行列演算にあると考えています。 ライブラリを含まない他のいくつかの計算では、Javaはそれほど遅くなく、場合によってははるかに高速です。
151 java  math  matrix  performance 

4
実際にフィボナッチヒープを効率的に実装した人はいますか?
あなたの誰かがフィボナッチヒープを実装したことがありますか?私は数年前にそうしましたが、配列ベースのBinHeapsを使用するよりも数桁遅くなりました。 当時、私はそれが研究が主張するほど必ずしも良いとは限らないということについての貴重な教訓だと思っていました。ただし、多くの研究論文では、フィボナッチヒープの使用に基づくアルゴリズムの実行時間を主張しています。 効率的な実装を実現できたことがありますか?または、フィボナッチヒープの方が効率的であるほど大きなデータセットを使用しましたか?もしそうなら、いくつかの詳細をいただければ幸いです。


1
Python 3.x整数の場合、ビットシフトよりも2倍高速ですか?
私はsorted_containersのソースを見ていて、この行を見て驚いた: self._load, self._twice, self._half = load, load * 2, load >> 1 これloadは整数です。ある場所でビットシフトを使用し、別の場所で乗算を使用するのはなぜですか?2による整数除算よりもビットシフトの方が速い場合があるのは理にかなっていますが、乗算もシフトで置き換えてみませんか?私は以下のケースをベンチマークしました: (回、除算) (シフト、シフト) (回、シフト) (シフト、除算) そして#3は他の選択肢よりも一貫して速いことがわかりました: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x = random.randint(10 ** 3, 10 ** 6) def test_naive(): a, b, …

10
大きなdata.tableでNAを置き換える最速の方法
大きなdata.tableがありますあり、多くの欠損値が行と200列に散らばっています。これらのNA値をできるだけ効率的にゼロに再コーディングしたいと思います。 2つのオプションが表示されます: 1:data.frameに変換し、次のようなものを使用します 2:ある種のクールなdata.tableサブ設定コマンド タイプ1のかなり効率的なソリューションに満足します。data.frameに変換してからdata.tableに戻すのに時間がかかりません。

9
外部キーはクエリのパフォーマンスを向上させますか?
ProductsとProductCategoriesという2つのテーブルがあるとします。両方のテーブルは、CategoryIdに関係があります。そしてこれがクエリです。 SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; 実行プランを作成すると、予想どおり、テーブルProductCategoriesがクラスターインデックスのシークを実行します。しかし、テーブル製品の場合、クラスターインデックススキャンを実行するので、疑問に思います。FKがクエリのパフォーマンス向上に役立たないのはなぜですか? したがって、Products.CategoryIdにインデックスを作成する必要があります。再度実行プランを作成すると、両方のテーブルがインデックスシークを実行します。また、推定されるサブツリーのコストが大幅に削減されます。 私の質問は: FKは関係の制約に役立ちますが、他に何か便利なことはありますか?クエリのパフォーマンスは向上しますか? すべてのテーブルのすべてのFK列(Products.CategoryIdなど)にインデックスを作成する必要がありますか?

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