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

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

14
プログラミング言語のパフォーマンスが遅いのは本当に悪いことですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 ここに私がそれを見る方法があります。 マシンコードがあり、コンピューターが何かを実行するために必要なのはそれだけです。コンピューターはプログラミング言語を気にしません。マシンコードがPerl、Python、またはPHPのどれであるかは関係ありません。プログラミング言語はコンピューターに役立ちません。プログラマーに役立ちます。 一部のプログラミング言語は他のプログラミング言語よりも動作が遅くなりますが、それは必ずしも問題があるためではありません。多くの場合、それは、プログラマーがしなければならないこと(つまり、メモリ管理)をより多く行うためであり、これらのことを行うことにより、プログラマーにサービスを提供することになります。 それでは、プログラミング言語のパフォーマンスの低下は、本当に悪いことですか?

1
「有害とみなされるヒューマンタスクスイッチ」をバックアップするためのハードデータはありますか?
Joel Spolskyは、有名なブログ記事「ヒューマンタスクスイッチが有害だと考えている」を書いています。 私は前提に同意し、常識のように思えますが、タスクスイッチのオーバーヘッドを計算するための研究やホワイトペーパーがありますか、それとも証拠は単なる逸話ですか?

7
データベースインデックスに関するベストプラクティス[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 インデックスを使用してデータベースのパフォーマンスを向上させるためのDOとDONTは何ですか? DOは、インデックスを作成する必要がある場合、またはパフォーマンスを改善する別のインデックス関連のヒントです。 DONTは、インデックスを作成する必要がない場合、またはパフォーマンスを損なう可能性のある別のインデックス関連のアクションです。

4
データベース設計-毎回状態を保存するか状態を計算しますか?
リレーショナルデータベースアプリケーションと「ユーザー」オブジェクトと「メッセージ」オブジェクトがあるとします。次に、このユーザーに未読メッセージの数を表示します。 これをアーカイブする最良の方法は何ですか?ユーザーにフィールドを導入し、ユーザーがメッセージを受信した場合にカウントアップし、メッセージを読んだ場合にカウントを減らしますか?または、毎回クエリを実行して、未読のフラグが付けられたユーザーのメッセージ数を計算しますか? 最初のアプローチはより複雑でエラーが発生しやすいと思いますが、2番目のアプローチよりもパフォーマンスが向上します。 これは通常どのように行われますか、またはより良いアプローチは何ですか?

2
アルゴリズムの予想実行時間と平均実行時間はどういう意味ですか?
アルゴリズムの実行時間を分析したいとしましょう。入力サイズがnで、最悪の場合はO(n)で示される場合に、アルゴリズムの実行時間を見つけたいと言うことがあります。時々、アルゴリズムの予想時間を見つける必要があると言っている本/論文を見ます。また、平均実行時間が使用されることもあります。 「予想時間」とは何ですか?最悪の場合の時間ではなく、予想される時間を見つけることはどの場合に役立ちますか? 編集:予想実行時間と平均実行時間の間には微妙な違いがあると思いますが、よくわかりません。この投稿を通して、もしあれば正確な違いを知りたい。

6
ソフトウェアをより速く実行するために、誰もがアイデアを試すことができる期間を促進しますか?
場合によっては、方法論的で徹底的な検索からソフトウェアパフォーマンスのトリックが見つかります。時々、クレイジーなアイデアを試すには発散的な思考と勇気が必要です。時には、アイデアは単なる始まりに過ぎず、多くの努力を払う必要があります。 私たちが取り組んでいるソフトウェアのパフォーマンスを向上させるために、誰もがさまざまなアイデアを試すことができる期間を育成する方法は?チームの全員が少なくとも数か月間ソフトウェアを使用した経験があり、非常に優れています。 発散的思考がソフトウェアのパフォーマンスを改善する方法を見つけるのに役立つことに同意しますか?どうして?何故なの? 最適化のアイデアをすばやく試すことができるテクニックは何ですか?トライアウトから良い結果を得るには、速いコーディング速度が必要ですか? 最後に、緩む可能性を生じさせずに良好な結果を保証するために、どれだけの「時間」を割り当てる必要がありますか? 「より高速な方法」が存在することを証明するには、実験が必要ですか?(2011-06-07を追加) 関連: チームのレベルを巧妙に改善するための戦略は何ですか? コードハッキングが悪化するのはいつですか? (賞金目的のみ -2011/06/07チームサイズは2〜4人の開発者で、専用のQAはありません。すべてのコード、ユニットテスト、パフォーマンステストは開発者が行います。プロジェクトの性質により、プロファイラの結果は単一のボトルネックが明らかにならない場合でも、比例した実行時間。)

5
VS 2010のパフォーマンスを向上させるために何かできますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 .Net 4でアプリを開発しているので、VS 2010を使用していますが、パフォーマンスが私を夢中にさせています。しばらくIDEを表示しないと(ヘルプデスクの呼び出しのために引っ張られたり、午前中に来たりした場合など)、ほとんどの場合に問題があります。 おそらく未使用時にリソースをアンロードするWPFに組み込まれていることに気付きますが、すべてをバックアップしてロードするまでの数分の遅延は本当に面倒です。また、ファイルを開いたりコンパイルしたりするときにかなりの遅延が発生することに気付きました。

7
複数のデータベース呼び出しは、Web APIのネットワーク呼び出しでは本当に重要ですか?
私の雇用主の1人で、REST(しかしSOAPにも適用されます)APIに取り組みました。クライアント(アプリケーションUI)は、API(Web(一般的な運用展開ではLAN)経由で)を呼び出します。APIはデータベースを呼び出します。 私たちの議論で繰り返されるテーマの1つはパフォーマンスです。チームの一部の人々は、パフォーマンスのために1つのAPI呼び出しから複数のデータベース呼び出し(通常は読み取り)を行うべきではないと考えています。各API呼び出しが(正確に)データベース呼び出しを1つだけ持つように最適化する必要があります。 しかし、それは本当に重要ですか?UIはAPIに対してネットワーク呼び出しを行う必要があることを考慮してください。それはかなり大きいです(ミリ秒単位)。データベースは、メモリ内に物事を保持し、読み取りを非常に迅速に実行するように最適化されています(たとえば、SQL ServerはすべてをRAMにロードして保持し、可能な限りすべての空きRAMを消費します)。 TLDR:すでにLAN経由でネットワーク呼び出しを行っているときに、複数のデータベース呼び出しを心配することは本当に重要ですか?もしそうなら、なぜですか? 明確にするために、私は大きさについて話しています-それは仕様(マシンハードウェア、APIとDBの選択など)に依存することを知っています桁違いに少ない呼び出し、実際に問題ですか?それとも、これ以上の問題がありますか? 編集:後世のために、これらの状況下でデータベース呼び出しを組み合わせてパフォーマンスを改善する必要があると主張するのは非常にばかげていると思います-特にプロファイリングがない場合。ただし、これを行うかどうかは私の判断ではありません。これがWeb API呼び出しを最適化する正しい方法であると考える背後にある根拠を知りたいです。

4
単純なプロパティでAggressiveInliningを使用することには欠点がありますか?
C#/ JITがどのように動作するかを分析するためのツールについてもっと知っていれば、私は自分自身に答えることができるに違いないが、そうではないので、私に尋ねてください。 私はこのような簡単なコードを持っています: private SqlMetaData[] meta; [MethodImpl(MethodImplOptions.AggressiveInlining)] private SqlMetaData[] Meta { get { return this.meta; } } ご覧のとおり、AggressiveInliningをインライン化する必要があると感じたため、AggressiveInliningを配置しました。 おもう。それ以外の場合、JITがインライン化する保証はありません。私が間違っている? この種のことを行うと、パフォーマンス/安定性/何かが損なわれる可能性がありますか?

8
「完璧なプログラマーの症候群」を破る方法[非公開]
ここで何が尋ねられているかを伝えるのは難しいです。この質問は曖昧、曖昧、不完全、過度に広範、または修辞的であり、現在の形式では合理的に答えることができません。この質問を明確にして、再開できるようにするには、ヘルプセンターに アクセスしてください。 7年前に閉鎖されました。 そう思うのはおそらく私だけではないでしょう。しかし、私は「完璧なプログラマーの症候群」と呼ぶ傾向があります。多くの人が言うのは完璧主義者と同じですが、この場合はプログラミングの領域です。ただし、プログラミングの領域は、このような症候群には少し問題があります。 プログラミングをしているときに、コードがきれいで、ほとんどのベストプラクティスに従う優れたコードであるという自信がない、または自信がないと感じたことはありますか?従うべき非常に多くのルールがあるので、どういうわけか圧倒されるような気がします。もちろん、私はプログラマーであり、プログラミングが大好きであるというルールに従うことを好まないというわけではありません。これを芸術と見なし、ルールに従う必要があります。しかし、私もそれが大好きです。私がしたいことを意味し、自分がやっていることが正しい方向に進んでいるという良い感覚を得るためにルールに従うのが大好きです。ベストプラクティスと優れたコードに関する。 多分それは組織の欠如ですか?たぶん、それは経験不足ですか?たぶん練習不足?たぶん、誰かが指摘できる何かが欠けているのでしょうか?どういうわけかその症候群を取り除く方法はありますか?

2
大きくて複雑なソフトウェア製品を遅くするものは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 あまり関係のない理由で、私はDelphi 7をこのような長い時間でもう一度インストールしました。私は言わなければならない、私は完全に吹き飛ばされた-私はかなりしばらくの間ではなかった方法で。これは私が物事を覚えている方法ではありません。インストールには約30秒かかりました。起動には2秒かかり、すぐに使用できました。開始後、2番目に「実行」を押すと、1秒以内に空のプログラムが既に表示され、実行されています。コンピューターの速度が大幅に向上しました! しかし、私がこのように吹き飛ばされた理由は、通常私はVisual Studio 2010を使用しているためです。確かに、デルファイ7は、Visual Studio 2010よりもはるかに小さいシステムであるが、それは持っている外観がすべて本当に必要なものを持っていることの:コントロールパレット、フォームデザイナ、コード補完とコードエディタを。言語がよりシンプルで、コード補完のパワフルさが少なく、IDEの拡張性や機能が豊富ではないかもしれないことを理解していますが、それでも:(どのメカニズムを介して)どのように機能するのかわかりません多くの追加機能(まだトリガーしていなかったかもしれません)により、Visual Studioのようなシステムは常に比較して低迷します。 システムの操作に経験のある人にVisual Studioの規模を聞いてみたいと思います。それが遅くなる原因は何ですか?コードベースを人間の理解能力の範囲内に保つために必要な抽象化のレイヤー上のレイヤーですか?実行する必要があるコードの量は膨大ですか?それは、クロックサイクル/メモリ使用部門の(驚くほど巨大な)費用で、プログラマの時間節約アプローチに向かう現代の傾向ですか?

8
いつパフォーマンスを気にする必要がありますか?
JavaのIRCチャンネル、SO、およびその他の場所で最も長い間、「コードの見た目とその読みやすさ/理解しやすさ、そして絶対に必要な場合は後でパフォーマンスについて心配する」という行に沿って何かを言われました。そのため、私は長い間、小さなデスクトップまたはWebアプリのパフォーマンスについてOCDを実際に使ったことがなく、明らかに非効率なものを削除していました。 ほとんどの応答は「スケーラビリティについてはどうですか?」です。これは正当なポイントですが、アプリが10,000行のファイルを解析するためだけに構築されている場合、1,000,000行のファイルを押し込む人のごく一部のコードを混乱させるべきですか? 私の主な質問は、非常に速く物事を行うが、アップグレードの可能な方法を破壊し、コードを過度に困難にし、とにかく次の開発者によって書き直しがちな巨大で複雑な獣のために、タスクを行う簡単だがやや非効率的な方法を交換すべきときですか?

22
どの時点でパフォーマンスについて考える必要がありますか?
アプリケーションを構築しているとき、これが特定の機能を実行または実装する最良の方法であるかどうかを常に問いかけています。多くの場合、パフォーマンスに関する「馬の前にカートを置く」べきではないというコメントを受け取るために、stackoverflowまたはフィードバックを希望する別のフォーラムに質問を投稿します。ほとんどのプログラマーは、アプリケーションが終了するまでパフォーマンスについて本当に考えないのでしょうか、それともパフォーマンスがまったく許容できないのでしょうか?? つまり、開発環境は本番環境とは異なり、開発用ラップトップからの結果に完全に依存するべきではないことを理解しています...しかし、他のものよりも優れたパフォーマンスをもたらすプラクティスとテクニックがあります。 開発プロセス全体でパフォーマンスを考慮することは悪い習慣ですか?パフォーマンスが実際に低下するまで、これらの考慮事項をオフにする必要がありますか?? 更新 明確にするために、機能の一部を検討している、または作業しようとしている状況について説明しています。実装にはいくつかの方法がありますが、各実装がどの程度拡張できるかはよくわかりません。また、よく知らないテクニックもいくつかあります。小規模ではいずれのアプローチでもおそらく適切ですが、大規模では一部のアプローチが維持され、一部は維持されません。多くの場合、私が意見やガイダンスを求めるとき、応答は次のとおりです。後で心配する...

3
Androidフラグメントを使用する理由
このトピックに関するドキュメントと他のいくつかの質問のスレッドを読みましたが、私は本当に納得しません。この技術の使用の限界がはっきりとはわかりません。 フラグメントは現在、ベストプラクティスと見なされています。すべてのアクティビティは基本的に1つ以上のフラグメントのサポートであり、レイアウトを直接呼び出すことはありません。 フラグメントは次の目的で作成されます。 Activity多くのフラグメントの使用、それらの間の変更、これらのユニットの再利用を許可します... ==>はアクティビティにFragment完全に依存しているContextため、多くのアクティビティで再利用および処理できるジェネリックが必要な場合は、独自のカスタムレイアウトまたはビューを作成します...フラグメントが追加するこの追加の複雑さ開発レイヤーについては気にしません。 異なる解像度へのより良い処理==>長時間のプロセスの場合、タブレットの同じアクティビティで2つ(またはそれ以上)のフラグメントを表示し、電話で1つずつ表示できるタブレット/電話の場合はOKです。しかし、なぜフラグメントを常に使用するのでしょうか? フラグメント間を移動するためのコールバックの処理(つまり、ユーザーがログインしている場合はフラグメントを表示し、そうでない場合は別のフラグメントを表示します)。===>フェイスブックSDKログインがこのために持っているバグの数を見てみて、それが本当に(?)であることを理解してください... Androidアプリケーションはアクティビティに基づいていることを考慮すると...仕方。===>これは、フラグメントSDKを使用してAndroid SDKとAndroid Frameworkを見ることに慣れている人の答えです。間違っているとは思いませんが、良い結果が得られるかどうかわかりません...そしてそれは本当に抽象的です... ====>常に使用することで、コーディングが増えて生活が複雑になるのはなぜですか?それ以外の場合、それがいくつかの場合の単なるツールである場合、なぜそれがベストプラクティスであるのですか?これらのケースは何ですか?

5
マイクロコントローラー用の効率的なCコードの作成に関するリソース [閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 ここでは深刻な助けが必要です。プログラミングが大好きです。最近、C言語の本(K&Rなど)や記事/フォーラムをオンラインでたくさん読んでいます。Linuxコードを調べてみました(どこから始めたらいいのか迷っていましたが、小さなライブラリを覗いてみると助けになりましたか?)。 私はJavaプログラマーとしてスタートしましたが、Javaでの作業はかなり乾燥しています。プログラムが大きくなりすぎた場合は、クラスでスライスし、さらに関数に分割します。ガイドラインは、コードを読みやすくし、コメントを追加します。情報の隠蔽とOOPテクニックを使用します。そのうちのいくつかはまだCに適用されます。 私は今Cでコーディングしており、これまでのところ、プログラムを何らかの方法で動作させています。多くの人がパフォーマンス/効率、アルゴリズム/設計、最適化、保守性について話します。一部の人々はもう一方を強調しますが、プロではないソフトウェアエンジニアにとっては、次のようなことをよく耳にします。 私の質問は次のとおりです。リソースを無駄にせずに 8ビットマイクロコントローラー用のコードを書く予定です。私はJavaのバックグラウンドから来ているので、物事はもう同じではないことを知っています...リソース/ブック/リンク/ヒントは大歓迎です。パフォーマンスとサイズが重要になりました。8ビットマイクロコントローラー向けの効率的な(ベストプラクティス内)Cコードのリソース/コツですか? また、inline assemblyマイクロコントローラーの標準に近いだけでなく、重要な役割を果たします。しかし、すべてに適用される効率の一般的な経験則はありますか? たとえば、: register unsigned int variable_name;はcharいつでも好まれます。または、 uint8_t 大きな数字が必要ない場合に使用します。 編集:すべての答えと提案をありがとうございました。知識を共有するための皆の努力に感謝します。
15 c  performance  speed 

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