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

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


5
クラスター化と非クラスター化
私のSQL(Server 2008)に関する低レベルの知識は限られており、現在DBAによって挑戦されています。説明させてください(私は私が正しいことを期待して明白な発言を述べましたが、何か問題を見つけた場合は教えてください)シナリオ: 人のための「裁判所命令」を保持するテーブルがあります。テーブル(名前:CourtOrder)を作成したとき、次のように作成しました。 CREATE TABLE dbo.CourtOrder ( CourtOrderID INT NOT NULL IDENTITY(1,1), (Primary Key) PersonId INT NOT NULL, + around 20 other fields of different types. ) 次に、非効率的なインデックスを主キーに適用しました(効率を高めるため)。私の理由は、それが一意のフィールド(主キー)であり、主に選択目的のためにインデックス付けする必要があることです。Select from table where primary key = ... 次に、CLUSTEREDインデックスをPersonIdに適用しました。その理由は、作業の大部分が人の注文を得ているため、特定の人の注文を物理的にグループ化するためでした。そう、select from mytable where personId = ... 私は今これに引っ張られています。クラスタ化インデックスを主キーに配置し、通常のインデックスをpersonIdに配置する必要があると言われました。それは私には非常に奇妙に思えます。まず、クラスター化インデックスを一意の列に配置するのはなぜですか。それはクラスタリングとは何ですか?確かに、それはクラスタ化インデックスの無駄です。通常のインデックスが一意の列で使用されると思っていました。また、インデックスをクラスター化すると、別の列をクラスター化できなくなります(テーブルごとに1つですよね?)。 私が誤りを犯したと言われる理由は、クラスター化されたインデックスをPersonIdに置くと挿入が遅くなると彼らが信じているからです。選択の速度が5%向上すると、挿入と更新の速度が95%低下します。それは正しいですか? personIdをクラスター化するため、PersonIdを挿入または変更するときは常にSQL Serverがデータを再配置する必要があると彼らは言います。 それで私は尋ねました、もしそれがとても遅いのになぜSQLはCLUSTERED INDEXの概念を持っているのでしょうか?彼らが言っているのと同じくらい遅いですか?最適なパフォーマンスを実現するには、どのようにインデックスを設定する必要がありますか?私はSELECTがIN​​SERTよりも使用されていると思っていました...しかし、彼らはINSERTSでロックの問題があると言っています... 誰かが私を助けてくれることを願っています。

12
空の配列のチェック:カウントと空
「PHP配列が空かどうかを確認する方法」に関するこの質問では、この質問について考えていました。 配列が空かどうかを判断するときcountに、代わりに使用すべき理由はありemptyますか? 私の個人的な考えは、2つが空の配列の場合と同等であるかどうかです。空の配列の場合empty、ブールの質問に対してブールの回答が得られるためです。上にリンクされている質問から、それcount($var) == 0が人気のある方法のようです。私には、技術的には正しいが、意味がありません。例Q:$ var、あなたは空ですか?A:7。うーん... count == 0代わりに、または単に個人的な好みの問題を使用する理由はありますか? 削除された回答に対するコメントで他の人が指摘したように、countすべての要素をカウントする必要があるため、大規模な配列のパフォーマンスに影響を与えますemptyが、空でないことがわかるとすぐに停止できます。したがって、この場合に同じ結果が得られても、count非効率的である可能性がある場合、なぜ使用するのcount($var) == 0でしょうか。

8
PHPを使用してファイルを提供する最速の方法
私はファイルパスを受け取り、それが何であるかを識別し、適切なヘッダーを設定し、Apacheと同じように機能する関数をまとめようとしています。 これを行う理由は、ファイルを提供する前に、PHPを使用してリクエストに関する情報を処理する必要があるためです。 スピードが重要 virtual()はオプションではありません ユーザーがWebサーバーを制御できない共有ホスティング環境で動作する必要があります(Apache / nginxなど) これが私がこれまでに得たものです: File::output($path); <?php class File { static function output($path) { // Check if the file exists if(!File::exists($path)) { header('HTTP/1.0 404 Not Found'); exit(); } // Set the content-type header header('Content-Type: '.File::mimeType($path)); // Handle caching $fileModificationTime = gmdate('D, d M Y H:i:s', File::modificationTime($path)).' GMT'; …

12
HTMLエンティティとしてHTMLタグをエスケープする最速の方法?
私がやっ含まChromeの拡張機能書いている多くの文字列をサニタイズ:次の仕事のがあります変換することによって、HTMLタグが含まれているが<、>と&に<、>そして&それぞれ。 (言い換えれば、PHPと同じhtmlspecialchars(str, ENT_NOQUOTES)です。二重引用符の文字を変換する必要は実際にはないと思います。) これは私がこれまでに見つけた最速の関数です: function safe_tags(str) { return str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') ; } しかし、一度に数千の文字列を実行しなければならない場合には、まだ大きな遅れがあります。 誰でもこれを改善できますか?それが違いを生む場合、それは主に10〜150文字の文字列用です。 (私が持っていたアイデアの1つは、大なり記号をエンコードすることではありませんでした。これには本当に危険があるのでしょうか?)

3
Pythonの例外ハンドラのコスト
で別の質問、受け入れ答えは、パフォーマンスを向上させるために、try / exceptブロックでPythonコードにif文(非常に安い)の交換を提案しました。 コーディングスタイルの問題は別として、例外がトリガーされないと仮定すると、例外ハンドラーがある場合とない場合と比較してゼロに比較するifステートメントがある場合と、例外ハンドラーがある場合とでは、パフォーマンスにどの程度の違いがありますか?

11
文字列の最初の文字を小文字にする最も効率的な方法は?
String小文字の最初の文字を作成する最も効率的な方法は何ですか? これを行う方法はいくつか考えられます。 使用charAt()してsubstring() String input = "SomeInputString"; String output = Character.toLowerCase(input.charAt(0)) + (input.length() > 1 ? input.substring(1) : ""); またはchar配列を使用する String input = "SomeInputString"; char c[] = input.toCharArray(); c[0] = Character.toLowerCase(c[0]); String output = new String(c); これを達成するための素晴らしい方法は他にもたくさんあると思います。何がお勧めですか?

4
単純なベンチマークでの奇妙なパフォーマンスの増加
昨日 、2つのポイント構造体(タプル)を追加するメソッドのいくつかの言語(C ++、C#、Java、JavaScript)のベンチマークとなった「.NET Struct Performance」というタイトルのChristoph Nahrの記事を見つけましたdouble。 結局のところ、C ++バージョンは実行に約1000ミリ秒(1e9反復)かかりますが、C#は同じマシン上で〜3000ミリ秒を下回ることはできません(x64ではパフォーマンスがさらに低下します)。 自分でテストするために、C#コード(およびパラメーターが値で渡されるメソッドのみを呼び出すように少し簡略化)を取り、i7-3610QMマシン(シングルコアの場合は3.1Ghzブースト)、8GB RAM、Win8で実行しました。 1、.NET 4.5.2を使用して、RELEASEビルド32ビット(私のOSは64ビットであるためx86 WoW64)。これは簡略版です: public static class CSharpTest { private const int ITERATIONS = 1000000000; [MethodImpl(MethodImplOptions.AggressiveInlining)] private static Point AddByVal(Point a, Point b) { return new Point(a.X + b.Y, a.Y + b.X); } public static void Main() { Point a = …

5
Rでdata.framesをマージ/結合する最も速い方法は何ですか?
たとえば(ただし、最も代表的な例かどうかはわかりません): N <- 1e6 d1 <- data.frame(x=sample(N,N), y1=rnorm(N)) d2 <- data.frame(x=sample(N,N), y2=rnorm(N)) これは私がこれまでに得たものです: d <- merge(d1,d2) # 7.6 sec library(plyr) d <- join(d1,d2) # 2.9 sec library(data.table) dt1 <- data.table(d1, key="x") dt2 <- data.table(d2, key="x") d <- data.frame( dt1[dt2,list(x,y1,y2=dt2$y2)] ) # 4.9 sec library(sqldf) sqldf() sqldf("create index ix1 on d1(x)") …

11
Python対Bash-パフォーマンスに関して、それぞれが他のタスクをどのような種類のタスクで実行しますか?
明らかにPythonの方がユーザーフレンドリーです。Googleでクイック検索を行うと多くの結果が表示されます。これは、Pythonがバイトコンパイルされるため、通常は高速であることを示しています。私も見つけ、これは、あなたが辞書ベースの操作で2000%以上の改善を見ることができると主張しています。 この問題についてあなたの経験は何ですか?それぞれが明確な勝者となるタスクの種類はどれですか。

10
クラスを封印する理由
.Netフレームワークのシールされたクラスの大部分の背後にある動機は何ですか。クラスを封印する利点は何ですか?継承を許可しないことがどのように役立つか、そしておそらくこれらのクラスと戦っている唯一の人ではないかもしれません。 では、なぜフレームワークはこのように設計されているのか、そしてすべてを開封するという画期的な変更ではないのでしょうか?別の理由があるに違いないが、ただ悪であるのか?
96 .net  performance 

4
何が速いですか:in_arrayまたはisset?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 安い低速サーバー(または大量のトラフィックを持つサーバー)でも実行できる最適化されたコードを常に書きたいので、この質問は単に私にとってのものです。 周りを見回したが答えが見つからなかった。私の場合、配列のキーは重要ではない(当然のことながら擬似コードです)ことを念頭に置いて、これらの2つの例の間で何が速いのか疑問に思いました。 <?php $a = array(); while($new_val = 'get over 100k email addresses already lowercased'){ if(!in_array($new_val, $a){ $a[] = $new_val; //do other stuff } } ?> <?php $a = array(); while($new_val = 'get over 100k email addresses already lowercased'){ if(!isset($a[$new_val]){ $a[$new_val] = true; //do other stuff } } …

5
translateZ(0)に関連するCSSパフォーマンス
多くのブログが、transform: translateZ(0)アニメーションとトランジションを高速化するためにを使用して、要素が3Dであると考えるようにGPUを「トリック」することでパフォーマンスの向上を表現しています。この変換を次のように使用することに意味があるかどうか疑問に思っていました。 * { -webkit-transform: translateZ(0); -moz-transform: translateZ(0); -ms-transform: translateZ(0); -o-transform: translateZ(0); transform: translateZ(0); }



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