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

このタグは、さまざまなシステムやアルゴリズムの効率を比較したり、効率を測定する方法を参考にして使用します。Big O表記は、複雑さに関連していますが、効率に影響を与える可能性があります。

7
ビットマスクが「マスク」と呼ばれるのはなぜですか?また、それらの目的は何ですか?
「ビットマスク」がなぜこのように呼ばれるのですか? 私はそれらが主にビット単位の操作に使用され、ビットマスクの使用が個別の変数の使用よりも効率的であることを知っています。 しかし、私の質問は、ビットマスクが発明された理由と時期です。初期のコンピューティング以来使用されていましたか?ITドメイン内にビットマスク以外のタイプの「マスク」はありますか?

5
Pythonは解釈またはコンパイルされますか?
これは、インタープリターおよびコンパイルされた言語について読んでいたときの不思議です。 ソースコードは実行時にインタープリターによって処理されるため、Rubyは間違いなくインタープリター言語です。 それどころか、Cはコンパイルされた言語であり、マシンに応じて最初にソースコードをコンパイルしてから実行する必要があります。これにより、実行速度が大幅に向上します。 Pythonに来ました: Pythonコード(somefile.py)をインポートすると、同じディレクトリにファイル(somefile.pyc)が作成されます。インポートはpythonシェルまたはdjangoモジュールで行われるとしましょう。インポート後、コードを少し変更し、インポートされた関数を再度実行して、まだ古いコードが実行されていることを確認します。これは、*。pycファイルはCファイルのコンパイル後に作成された実行可能ファイルに似たコンパイル済みのpythonファイルですが、*。pycファイルを直接実行することはできません。 pythonファイル(somefile.py)が直接実行された場合(./somefile.pyまたはpython somefile.py)、. pycファイルは作成されず、コードは解釈された動作を示すように実行されます。 これらは、Pythonコードが新しいプロセスにインポートされるたびにコンパイルされ、直接実行されたときに解釈されながら.pycを作成することを示唆しています。 それで、どのタイプの言語と考えるべきですか?解釈またはコンパイル?そして、その効率は、インタープリター言語およびコンパイル言語と比較してどうですか? wikiの解釈言語ページによると、それは仮想マシンコードにコンパイルされた言語としてリストされていますが、それはどういう意味ですか?

10
なぜ高レベル言語ベースのOSがないのですか?低レベル言語はより効率的ですか?
予想外のことをせずに、この可能性を検討してほしい。現在、ほとんどのOSはかなり低レベルの言語(主にC / C ++)に基づいています。Androidなどの新しい言語でもJNIを使​​用しており、基礎となる実装はCで行われています 実際、(これは個人的な観察です)Cで書かれた多くのプログラムは、高レベルのものよりもはるかに高速に実行されます(例:Transmission(Ubuntuのbittorrentクライアント)は、Vuze(Java)またはDeluge(Python)よりもはるかに高速です)。PyPyは例外ですが、PythonコンパイラでさえCで書かれています。 これには特別な理由がありますか?優れた「OOP」の概念を備えたいわゆる「高レベル言語」がすべて、堅牢なOSの作成に使用できないのはなぜですか? 基本的に2つの質問があります。 なぜ低レベル言語で記述されたアプリケーションは、HLLの対応言語よりも効率的ですか?低レベル言語は、低レベルであり、マシンコードへの翻訳が簡単であるという単純な理由により、パフォーマンスが向上しますか? 完全に高レベル言語に基づいた本格的なOSがないのはなぜですか?

10
在宅勤務の(不利な)利点についてのハードデータはありますか?[閉まっている]
在宅勤務の長所と短所に関する確固たるデータ(研究、比較、非直感的感覚分析)はありますか? 私の開発者は、たとえば週に1日自宅で仕事をすることについて尋ねましたが、上司はさまざまな理由でそれを気に入らなかったのです。 実在するオフィス(それぞれ2..3人)があり、気晴らしは依然として一般的です。IMOはフォーカスに有益であり、1週間に1日あれば、相互作用やコミュニケーションに大きな損失はありません。さらに、それは素晴らしい特典であり、通勤を節約するでしょう。 関連:リモート/自宅での作業の長所と短所 (興味深い点ですが、難しい事実はありません) 明確にするために、それは私の決定ではなく、状況に応じて賛否両論があることに同意し、「試してみてください」を推進しています。(a)事実はエンジニアの上司と議論する際の考えに加え、(b)私たちは開発者として、あらゆる尊敬すべき取引のような事実に基づいて構築する必要があるため、この特定の質問をしました。

3
enumデータ型を使用する代わりに新しいデータベーステーブルを作成するのは無駄ですか?
私が提供する4種類のサービスがあると仮定します(それらは頻繁に変わることはほとんどありません): テスト中 設計 プログラミング その他 上記のカテゴリのいずれかに該当する実際のサービスが60〜80個あるとします。たとえば、「サービス」は「テクニックAを使用したプログラムのテスト」で、タイプは「テスト」です。 それらをデータベースにエンコードしたいです。私はいくつかのオプションを思いつきました: オプション0: VARCHAR直接使用して、サービスタイプを文字列として直接エンコードします オプション1: データベースを使用しますenum。しかし、enumは悪です オプション2: 2つのテーブルを使用します。 service_line_item (id, service_type_id INT, description VARCHAR); service_type (id, service_type VARCHAR); 参照整合性も楽しむことができます: ALTER service_line_item ADD FOREIGN KEY (service_type_id) REFERENCES service_type (id); いいですね。 しかし、私はまだ物事をエンコードし、整数を処理する必要があります。つまり、テーブルにデータを入力するときです。または、テーブルにデータを入力または処理するときに、手の込んだプログラミングまたはDB構造を作成する必要があります。つまり、データベースを直接扱うとき、またはプログラミング側で新しいオブジェクト指向エンティティを作成するときにJOINし、それらを正しく操作することを確認します。 オプション3: 使用しないでくださいenum。2つのテーブルを使用せず、整数列を使用してください。 service_line_item ( id, service_type INT, -- use 0, 1, 2, 3 (for service …

3
データベースのテキスト列にvarcharを使用する理由はありますか?
あるvarcharだけで残りは以前からtext周囲に来た、またはあなたが考えケースが使用されたい使用するにはvarchar?(またはcharそのことについて..) (私は毎日PostgresとMySQL(MyISAM)を使用しているので、それらは私が最も興味を持っているものですが、他のデータベースへの回答はもちろん歓迎です。^ _-)

11
Cでのシフトと乗算の時間の違いをテストすると、違いはありません。どうして?
バイナリのシフトは、2 ^ kを乗算するよりもはるかに効率的であると教えられました。だから私は実験したかったので、次のコードを使用してこれをテストしました。 #include <time.h> #include <stdio.h> int main() { clock_t launch = clock(); int test = 0x01; int runs; //simple loop that oscillates between int 1 and int 2 for (runs = 0; runs < 100000000; runs++) { // I first compiled + ran it a few times with …

18
なぜ企業は開発者の娯楽機器を購入しないのですか?[閉まっている]
開発にうんざりしていて、心がそれ以上役に立たないときは(自宅で)、単に面白いことをするだけで、問題解決能力が高く、心が自由になります。しかし、開発者の生産性と効率を向上させるための手法としてこの手法をマネージャーに勧めたとき、彼は仕事が娯楽の場ではないという理由で受け入れることを拒否しました。私はこの式が私のために働くと思う。他の開発者にも当てはまります: 2 hours of productive work + 30 minutes of entertainment > 3 hours of dull work なぜ企業はそれを信じないのですか? 更新:これがトピック外としてクローズされた理由がわかりません。これが関連していると思われる場合は、再度投票してください。

7
イースターエッグに対してどんな議論がありますか?イースターエッグをサポートするための議論はありますか?[閉まっている]
私は少し道化師なので、イースターエッグのアイデアはまだ私にアピールします。以前にコードにそれらを追加しましたが、私の友人グループは、CTRL-FUを使用して卵をトリガーするという冗談を言っています。 今、私もパフォーマンスについて少し偏執的ですので、可能な限り過剰を取り除くのが好きです。イースターエッグは100%余分なコードであるため、これは大きく矛盾しています。 イースターエッグに対してどのような議論がありますか?また、イースターエッグをサポートするための議論もありますか?

5
どの時点でディスクI / Oの非同期読み取りが同期より効率的ですか?
複数のコンシューマー向けにファイルを読み取るコードが少しあり、ファイルのサイズは任意であると仮定します。ファイルを非同期で読み取る方がどのサイズで効率がよくなりますか?別の言い方をすれば、同期的に読み取るためだけにファイルを高速化するには、ファイルをどれだけ小さくする必要がありますか? 私は、非常に小さなファイルを読み取るとき、同期(特に.NET)よりも非同期で読み取るのに時間がかかることに気付きました(そしておそらく私は間違っています)。これは、I / O完了ポート、スレッドなどのセットアップ時間に関係していると思います。 ここに役立つ経験則はありますか?それとも、システムと環境に依存していますか?
22 efficiency  async  io 

8
ソートされたデータを必要とするバイナリ検索が線形検索よりも優れていると考えられるのはなぜですか?
線形検索は単純なアプローチであり、漸近的な複雑さのために、バイナリ検索はパフォーマンスよりも優れているといつも聞いています。しかし、バイナリ検索の前に並べ替えが必要な場合、線形検索よりも優れている理由を理解できませんでしたか? 線形検索はでO(n)あり、バイナリ検索はO(log n)です。これが、バイナリ検索の方が優れていると言う根拠のようです。ただし、バイナリ検索ではO(n log n)、最適なアルゴリズムのためのソートが必要です。したがって、ソートが必要なため、バイナリ検索は実際には高速になりません。 著者は、単純な線形検索アプローチを使用するよりも挿入ソートで、アイテムを挿入する必要がある場所を見つけるためにバイナリ検索を使用する方が良いと示唆するCLRSを読んでいます。この場合、各ループ反復で、バイナリ検索を適用できるソート済みリストがあるため、これは正当化されているようです。しかし、検索が必要なデータセットについての保証がない一般的なケースでは、ソート要件のために実際にバイナリ検索を使用していないのは線形検索よりも悪いですか? 私が見落としている実用的な考慮事項はありますか?または、ソートに必要な計算時間を考慮せずに、バイナリ検索は線形検索よりも優れていると見なされますか?

5
(テスト目的で)コンピューターの速度を落とす方法は?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 ほとんどの人が同意するように、低速のマシンを提供することで開発者に高速コードを作成することを奨励することは良い考えではありません。しかし、その質問にはポイントがあります。私の開発マシンは高速であるため、不愉快なほど非効率なコードを書くこともありますが、それは他の人のマシンで実行する場合にのみ明らかになります。 ターボチャージされた開発用マシンを一時的に遅くする良い方法は何ですか?「速度」の概念には、次のようないくつかの要因が含まれます。 CPUクロック周波数。 CPUコアの量。 メモリとプロセッサキャッシュの量。 さまざまなバスの速度。 ディスクI / O。 GPU。 等
20 efficiency 

7
モジュール式プログラミングは計算時間に影響しますか?
誰もがコードをモジュール化する必要があると言っていますが、より少ないメソッドではなく、より大きなメソッドを使用するよりも多くのメソッド呼び出しを使用すると効率は低下しませんか?その点で、Java、C、またはC ++の違いは何ですか? 特にグループでは、編集、読解、理解が簡単になります。それで、コードの整頓の利点と比較して、計算時間の損失は重要ではありませんか?
19 java  c++  c  efficiency 

8
コードを単純にテストするのに長い時間がかかる場合、どのように効果的にプログラムしますか?
私のワークフローは、常に1つの論理ステップを記述してからプログラムを実行し、出力を検査することです。このプロセスは、大学での割り当てに非常に役立ちました。ただし、さらに開発を進めるにつれて、コードを単純にコンパイルして実行するのに1〜2分かかることがよくあります。例には、プログラムをマイクロコントローラーにアップロードすること、外部サーバーとの対話が必要であること、認証、ソフトウェアアーキテクチャ、または複雑さのために自動化を実装できないことが含まれます。 これらのタイプのタスクは、私が通常プログラムする方法には非常に不適切であり、効果的にコーディングするのが困難です。私は通常、多くの構文エラーと論理エラーを作成しますが、そのほとんどはテストで簡単に検出できます。ただし、このような長い待機時間では、この方法は時間がかかりすぎます。
16 efficiency  time 

6
他の従業員が残したプロジェクトをどのように管理しますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 突然、会社を辞める人がいます。今、彼の仕事を完了する必要があり、あなたはそれを割り当てられています。彼が何をしていたのかわからない(90%完了したのか9%だった)、残り物をどのように管理しますか? 最初から始めましょうか?90%完了した場合はどうなりますか? 彼が何をしたかを理解しようとしますか?それがナンセンスだったらどうだろう?

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