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

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

30
どうすればEclipseを高速化できますか?
どうすればEclipseのエクスペリエンスをより速くできますか? たとえば、私は必要のないすべてのプラグイン(Mylyn、Subclipseなど)を無効にします。 Mercurialのプラグインを使用する代わりに、TortoiseHGを外部ツールとして構成します。
1274 eclipse  performance 

5
\ dは[0-9]よりも効率的ではありません
昨日、誰かがor ではなく正規表現で使用[0123456789]した回答にコメントしました。おそらく、文字セットよりも範囲または桁指定子を使用する方が効率的であると私は言いました。[0-9]\d 私はそれを本日テストすることに決め、驚いたことに(少なくともC#の正規表現エンジンでは)\d他の2つのどちらよりも効率が悪く、それほど大きな違いはないようです。これは、実際に数字を含む5077の1000個のランダムな文字からなる10000個のランダムな文字列のテスト出力です。 Regular expression \d took 00:00:00.2141226 result: 5077/10000 Regular expression [0-9] took 00:00:00.1357972 result: 5077/10000 63.42 % of first Regular expression [0123456789] took 00:00:00.1388997 result: 5077/10000 64.87 % of first 次の2つの理由から、これは驚きです。 範囲はセットよりもはるかに効率的に実装されると思っていたでしょう。 \dがよりも悪い理由を理解できません[0-9]。\d単に省略形以上のものがあり[0-9]ますか? ここにテストコードがあります: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Text.RegularExpressions; namespace SO_RegexPerformance …
1249 c#  regex  performance 

30
Pythonで経過時間を測定する方法は?
私が欲しいのは、コードのどこかで時間のカウントを開始してから、渡された時間を取得し、いくつかの関数の実行にかかった時間を測定することです。私はtimeitモジュールを間違って使用していると思いますが、ドキュメントは私を混乱させるだけです。 import timeit start = timeit.timeit() print("hello") end = timeit.timeit() print(end - start)

11
クラスタ化インデックスと非クラスタ化インデックスは実際にはどういう意味ですか?
私はDBにあまり触れておらず、DBをアプリケーションプログラマとしてのみ使用しています。私が知りたいClusteredとNon clustered indexes。私はグーグルで私が見つけたものは: クラスター化インデックスは、テーブル内のレコードが物理的に格納される方法を並べ替える特別な種類のインデックスです。したがって、テーブルにはクラスタ化インデックスを1つだけ含めることができます。クラスタ化インデックスのリーフノードには、データページが含まれています。非クラスタ化インデックスは、インデックスの論理的な順序がディスク上の行の物理的な格納順序と一致しない特殊なタイプのインデックスです。非クラスター化インデックスのリーフノードは、データページで構成されていません。代わりに、リーフノードにはインデックス行が含まれます。 私がSOで見つけたのは、クラスター化インデックスと非クラスター化インデックスの違いは何ですか?。 誰かが簡単な英語でこれを説明できますか?

9
Swift Betaのパフォーマンス:配列の並べ替え
Swift Betaでアルゴリズムを実装していたところ、パフォーマンスが非常に低いことに気付きました。さらに深く掘り下げた後、ボトルネックの1つが配列の並べ替えと同じくらい単純なものであることに気付きました。関連する部分はここにあります: let n = 1000000 var x = [Int](repeating: 0, count: n) for i in 0..<n { x[i] = random() } // start clock here let y = sort(x) // stop clock here C ++では、同様の操作に私のコンピューターで0.06秒かかります。 Pythonでは、0.6秒かかります(トリックのない、整数のリストの場合はy = Sorted(x)のみ)。 Swiftでは、次のコマンドでコンパイルすると6秒かかります。 xcrun swift -O3 -sdk `xcrun --show-sdk-path --sdk macosx` また、次のコマンドでコンパイルすると、88秒もかかります。 xcrun …

18
JavaのtoString()におけるStringBuilderとStringの連結
toString()以下の2つの実装がある場合、どちらが推奨されますか。 public String toString(){ return "{a:"+ a + ", b:" + b + ", c: " + c +"}"; } または public String toString(){ StringBuilder sb = new StringBuilder(100); return sb.append("{a:").append(a) .append(", b:").append(b) .append(", c:").append(c) .append("}") .toString(); } ? さらに重要なことは、プロパティが3つしかない場合、違いはないかもしれませんが、どの時点で+concatから StringBuilder?に切り替えますか?

13
内部結合でクロス適用を使用する必要があるのはいつですか?
CROSS APPLYを使用する主な目的は何ですか? 私は(漠然と、インターネット上の投稿を通じて)、cross applyパーティション分割している場合に大規模なデータセットを選択する場合により効率的な方法を読んだことがあります。(ページングが頭に浮かぶ) またCROSS APPLY、右のテーブルとしてUDFを必要としないことも知っています。 ほとんどのINNER JOINクエリ(1対多の関係)では、を使用するように書き換えることができましたCROSS APPLYが、常に同等の実行プランが提供されます。 誰もが私がうまくいくような場合にCROSS APPLY違いが出るときの良い例を私に教えてもらえINNER JOINますか? 編集: 以下は、実行プランがまったく同じである簡単な例です。(それらが異なり、どこcross applyがより速く/より効率的かを示してください) create table Company ( companyId int identity(1,1) , companyName varchar(100) , zipcode varchar(10) , constraint PK_Company primary key (companyId) ) GO create table Person ( personId int identity(1,1) , personName varchar(100) , companyId int , …

13
CSSは常にJavascriptに先行する必要がありますか?
オンラインの数え切れないほどの場所で、JavaScriptの前にCSSを組み込むことを推奨しています。推論は一般に、この形式のものです: CSSとJavaScriptの注文に関しては、CSSが最初に来るようにします。その理由は、レンダリングスレッドには、ページのレンダリングに必要なすべてのスタイル情報があるためです。JavaScriptのインクルードが最初に来る場合、JavaScriptエンジンはそれをすべて解析してから次のリソースセットに進む必要があります。つまり、必要なスタイルがすべて揃っていないため、レンダリングスレッドはページを完全には表示できません。 私の実際のテストでは、まったく異なるものが明らかになりました。 私のテストハーネス 次のRubyスクリプトを使用して、さまざまなリソースに特定の遅延を生成します。 require 'rubygems' require 'eventmachine' require 'evma_httpserver' require 'date' class Handler < EventMachine::Connection include EventMachine::HttpServer def process_http_request resp = EventMachine::DelegatedHttpResponse.new( self ) return unless @http_query_string path = @http_path_info array = @http_query_string.split("&").map{|s| s.split("=")}.flatten parsed = Hash[*array] delay = parsed["delay"].to_i / 1000.0 jsdelay = parsed["jsdelay"].to_i delay = 5 …


25
MyISAM対InnoDB [終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 多くのデータベース書き込みを伴うプロジェクトに取り組んでいると思います(挿入70%、読み取り30%)。この比率には、1回の読み取りと1回の書き込みと見なす更新も含まれます。読み取りはダーティである可能性があります(たとえば、読み取り時に100%正確な情報は必要ありません)。 問題のタスクは、1時間に100万を超えるデータベーストランザクションを実行します。 MyISAMとInnoDBの違いについてウェブでたくさん読んだことがありますが、MyISAMは、このタスクに使用する特定のデータベース/テーブルについて私にとって明らかな選択のようです。私が読んでいるように見えることから、行レベルのロックがサポートされているため、トランザクションが必要な場合はInnoDBが適しています。 このタイプの負荷(またはそれ以上)の経験はありますか?MyISAMを使用する方法はありますか?

10
Javaで2 *(i * i)が2 * i * iより速いのはなぜですか?
次のJavaプログラムの実行には、平均で0.50秒から0.55秒かかります。 public static void main(String[] args) { long startTime = System.nanoTime(); int n = 0; for (int i = 0; i < 1000000000; i++) { n += 2 * (i * i); } System.out.println((double) (System.nanoTime() - startTime) / 1000000000 + " s"); System.out.println("n = " + n); } で置き換える2 * …


3
関数でPythonコードがより速く実行されるのはなぜですか?
def main(): for i in xrange(10**8): pass main() このPythonのコードは、以下で実行されます(注:タイミングは、LinuxのBASHのtime関数で実行されます)。 real 0m1.841s user 0m1.828s sys 0m0.012s ただし、forループが関数内に配置されていない場合、 for i in xrange(10**8): pass その後、より長い時間実行されます。 real 0m4.543s user 0m4.524s sys 0m0.012s どうしてこれなの?

11
Collat​​z予想を手書きのアセンブリよりも速くテストするためのC ++コード-なぜですか?
Project Euler Q14のこれら2つのソリューションは、アセンブリとC ++で作成しました。これらは、Collat​​z予想をテストするための同じ同一の力ずくのアプローチです。組み立てソリューションは、 nasm -felf64 p14.asm && gcc p14.o -o p14 C ++は g++ p14.cpp -o p14 アセンブリ、 p14.asm section .data fmt db "%d", 10, 0 global main extern printf section .text main: mov rcx, 1000000 xor rdi, rdi ; max i xor rsi, rsi ; i l1: dec …

15
Java「ダブルブレース初期化」の効率性?
StackаэтотвопросестьответынаStack Overflowнарусском:doubleтотакоеdouble braceинициализация? Javaの隠された機能トップの答えは言及ダブルブレースの初期化をして、非常に魅力的な構文: Set<String> flavors = new HashSet<String>() {{ add("vanilla"); add("strawberry"); add("chocolate"); add("butter pecan"); }}; このイディオムは、インスタンスの初期化子だけを含む匿名の内部クラスを作成します。これは、「包含スコープ内の[...]メソッドを使用できます」。 主な質問:これは想像以上に非効率ですか?その使用を1回限りの初期化に限定する必要がありますか?(そしてもちろん自慢して見せます!) 2番目の質問:新しいHashSetは、インスタンス初期化子で使用される「this」である必要があります...誰でもメカニズムに光を当てることができますか? 3番目の質問:このイディオムは、量産コードで使用するにはあいまいすぎますか? 概要:非常に良い答えです。皆さんに感謝します。質問(3)で、人々は構文が明確であるべきだと感じました(ただし、コードに慣れていない開発者にコードが渡される場合は特に、時々コメントをお勧めします)。 質問(1)では、生成されたコードはすぐに実行されます。余分な.classファイルが原因でjarファイルが乱雑になり、プログラムの起動がわずかに遅くなります(それを測定してくれた@coobirdに感謝します)。@Thiloは、ガベージコレクションが影響を受ける可能性があり、余分にロードされたクラスのメモリコストが場合によっては要因になる可能性があることを指摘しました。 質問(2)は私にとって最も興味深いものでした。答えを理解すると、DBIで起こっていることは、匿名の内部クラスがnew演算子によって構築されるオブジェクトのクラスを拡張しているため、構築されるインスタンスを参照する「this」値を持っていることです。とてもきちんとしています。 全体として、DBIは知的好奇心のようなものとして私を襲います。Coobirdなどは、Arrays.asList、varargsメソッド、Googleコレクション、および提案されたJava 7コレクションリテラルで同じ効果を達成できると指摘しています。Scala、JRuby、Groovyなどの新しいJVM言語も、リストの作成に簡潔な表記を提供し、Javaとうまく相互運用できます。DBIがクラスパスを混乱させ、クラスの読み込みを少し遅くし、コードを少しあいまいにすると、おそらく私はそれを避けます。しかし、私はこれをSCJPを取得したばかりの友人に頼み、Javaのセマンティクスについて素朴な冗談を愛するつもりです。;-) みんな、ありがとう! 2017年7月:Baeldung は二重ブレースの初期化の良い要約を持ち、アンチパターンと見なします。 2017年12月:@Basil Bourqueは、新しいJava 9では次のように言うことができると述べています。 Set<String> flavors = Set.of("vanilla", "strawberry", "chocolate", "butter pecan"); それは確かに行く方法です。以前のバージョンに行き詰まっている場合は、GoogleコレクションのImmutableSetをご覧ください。

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