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

コンピュータハードウェアは、コンピュータシステムを構成する物理的な要素の集まりです。

30
すべての企業が開発者に最高のハードウェアを購入しないのはなぜですか?
私は何かが欠けているに違いない。 私の地域でプログラマーを雇うコストは、1時間あたり50ドルから100ドルです。トップエンドのマシンはわずか3,000ドルなので、3年ごとに本当に優れたコンピューターを購入するコストは1時間あたり0.50ドルになります。($ 3000 /(150週間* 40時間)) あなたが行う必要があるトップエンドのマシンを?いいえ、ここでの3000ドルは、私が期待する金額ではなく、おそらく費やすことができる最大額を表しています。それは、おおむね、トップエンドのiMacまたはMacBook(17インチ)のコストです。 したがって、安価なコンピューターを購入することで3年ごとに2000ドルを節約でき、平均的な開発者が60ドルを稼いでいるとします。(これらは、私がBeanカウンターに提供できる最も慈善的な数字です。1000ドルまたは750ドルしか節約しない場合、それは私のケースを強化するだけです)。(一気にではありませんが、私のマシンはそれ以上のコストがかかると確信しています。)3年間で125時間の損失は合計で$ 7500の損失になります。1日1分間の損失(750ドル)は、1250ドルの純利益をもたらします。 これは「ペニーワイズでパウンドバカ」のケースですか、それとも質問を単純化しすぎていますか?ソフトウェア開発者が優れたハードウェアを使用する必要があるという普遍的な合意がないのはなぜですか(「エンタープライズ」でも)。 編集:私は私の友人がうらやましくなるような高速なパフォーマンスを叫びたいという願望やSSDについて話しているのではないことを明確にする必要があります。通常のワークロードを処理するにはRAMが少なすぎるマシンについて話しているため、フリーズ、リブート、通常の月曜日に約20分で典型的なアプリケーションを起動して開くことができます(誇張なし)。(週末以外はシャットダウンしません。) 私は実際にすぐに新しいマシンを手に入れる予定であり、それはいくらか物事を改善するでしょう。(ここでは2011年に2GBから3GBのRAMに移行します。)しかし、新しいマシンは現在の標準では平凡であるため、廃止日までに受け入れられなくなることも予想できます。 待つ!回答またはコメントする前に: 3000ドルは重要ではありません。必要なマシンのコストがそれよりも低い場合、それが購入されるべきであるより多くの理由です。 私は、より頻繁なアップグレードを求めていません。同じスケジュールでちょうど良いハードウェア。したがって、インストールなどの隠れたコストはありません。 最新のハードウェアと非常に優れたハードウェアの違いについては議論しないでください。最悪の場合、3年前に作られた最高のマシンの1つであるマシンのように、私は非常に優れたハードウェアを求めてロビー活動を行っています。 $ 50-$ 100 /時間は、人件費の見積もりであり、給与ではありません。あなたが請負業者として働いている場合、費用と利益を含む請負業者が使用する請求レート、雇用者社会課になります。寄付、雇用主、ヘルスケアの寄付など。この数字は、非現実的であることがわかっている場合を除き、コメントしないでください。 新しいコンテンツを提供していることを確認してください。別の回答を提供する前に、すべての回答を読んでください。

12
「ソフトウェアはハードウェアを置き換えることができます」というフレーズの意味は何ですか?
ハードウェア/ソフトウェアインターフェースおよびオペレーティングシステムに関する初心者向けコースでは、多くの場合、ハードウェアの一部をソフトウェアに、またはその逆に置き換える方が良いかどうかというトピックが出てきます。接続できません。

7
バイトが8ビットである理由の歴史は何ですか?
8ビットのグループを基本単位として使用することを決定する際に、歴史的な力が働いている場所とトレードオフの関係はどうでしょうか。 かつて、他のワードサイズを使用するマシンがありましたが、今日では、8ビット以外の場合、博物館の作品、組み込みアプリケーション用の専用チップ、およびDSPを調べる必要があります。バイトは、コンピューター設計の初期の混乱と創造性からどのように進化したのですか? ビット数が少ないとコンピューティングを実現するのに十分なデータを処理するのに効果的ではなく、多すぎると高価なハードウェアにつながると想像できます。遊びに他の影響はありましたか?これらの力がなぜ8ビットにバランスをとったのですか? (ちなみに、時間旅行ができたら、「バイト」が8ビットであると宣言された時点に戻り、すべての人に12ビットにするよう説得し、21世紀初頭の装身具で賄いました。)
86 history  hardware  byte  bit 

3
単一のスレッドは複数のコアでどのように実行されますか?
私は、シングルスレッドが複数のコアでどのように実行されるかを高レベルで理解しようとしています。以下は私の理解です。私はそれが正しいとは思わない。 Hyper-threadingの私の読書に基づいて、OSはすべてのスレッドの命令を、それらが互いに待機しないように編成しているようです。次に、CPUのフロントエンドは、各コアに1つのスレッドを配布することにより、これらの命令をさらに整理し、オープンサイクル間で各スレッドから独立した命令を配布します。 そのため、スレッドが1つしかない場合、OSは最適化を行いません。ただし、CPUのフロントエンドは、独立した命令セットを各コアに分配します。 https://stackoverflow.com/a/15936270によると、特定のプログラミング言語が作成するスレッドは多かれ少なかれありますが、それらのスレッドで何をすべきかを判断する際には無関係です。OSとCPUがこれを処理するため、使用されるプログラミング言語に関係なくこれが発生します。 明確にするために、単一のコアで複数のスレッドを実行するのではなく、複数のコアで実行される単一のスレッドについて尋ねています。 要約の何が問題になっていますか?スレッドの命令は複数のコアにどこでどのように分割されますか?プログラミング言語は重要ですか?これは広範なテーマであることを知っています。私はそれについて高レベルの理解を望んでいます。

12
コンピューターの仕組み [閉まっている]
これはほとんど恥ずかしい質問です...私はコンピューターサイエンスの学位を取得しています(2番目の学位も取得中です)。私はフルタイムの.NET開発者として5年近く働いてきました。私は一般的に私がやっていることで有能だと思う。 しかし、私はコンピュータの仕組みがわかりません! ちょっとだけ裸にしてください。「How a Computer Works」の簡単なグーグルは多くの結果をもたらしますが、私が探しているものに本当に答えるものを見つけるのに苦労しました。これは非常に大きな質問だと思いますので、キーワードや方向性を教えていただければ幸いです。 コンポーネント、電源、マザーボード、RAM、CPUなどがあることは知っています。そして、それらが何をするのかについての「一般的なアイデア」を得ることができます。しかしConsole.Readline()、.NET(またはJavaやC ++)のようなコード行からどのように進んで、実際にそれを実行させるかは本当に理解していません。 確かに、MSIL(.NETの場合)を漠然と認識していますが、JITコンパイラーで何らかの魔法が発生し、ネイティブコードになります(と思います)。Javaも同様であり、C ++は中間段階を切り捨てたと言われています。 私はいくつかのメインフレームアセンブリを行いました。それは数年前のことです。いくつかの命令といくつかのCPUレジスタがあり、コードを書いたのを覚えています...そして魔法が起こりました...そして私のプログラムは動作します(またはクラッシュします)。私が理解していることから、「エミュレータ」は命令を呼び出すと何が起こるかをシミュレートし、CPUレジスタを更新します。しかし、これらの指示が彼らのやり方で機能するのはなぜですか? これは「コンピューター」の質問ではなく、エレクトロニクスの質問になりますか?これを理解する実用的な理由はないと思うが、できるはずだと思う。 (はい、これは小さな子供と1日を過ごすと何が起こるかです。約10分、「なぜ?」

4
64ビットマシンで64ビットの代わりに32ビットソフトウェアを実行する正当な理由はありますか?
64ビットハードウェア上で最新の64ビットオペレーティングシステムを実行する、最新のデスクトップマシンを対象としたソフトウェアの64ビットバージョンと共に32ビットバージョンを提供する正当な理由はありますか? 64ビットソフトウェアの方が効率的で、必要に応じてメモリ使用量を増やすことができるようです。Appleは、4 GBをはるかに下回るRAMが1〜2 GBしかなくても、電話に64ビットプロセッサを使用します。 32ビットCPUの制限。

25
仮想マシンを使用した開発に関する考え方[終了]
私はスタートアップの開発リーダーとして働き、開発にVMを使用することを提案しました。各開発者がテスト/開発用のVMを備えたデスクトップを持っているということではなく、すべてのVMが管理され、ローカルまたはリモートからでもマイクロPC(ChromeOSの誰か)で開発者が作業するサーバーラックがあることを意味しますコンピューター。 私にとっての利点は、非常にスケーラブルで、長期的には安価で、管理しやすく、ハードウェアを最大限に活用できることです。短所については、セットアップをセットアップ/メンテナンスする人が必要になる以外、特定のショートッパーについて考えることはできません。 私はあなたの何人かがあなたの職場で同様の設定をして、あなたの意見に重みをつけることができることを望んでいました。ありがとう。

15
言語はCPU設計にどのように影響しましたか?[閉まっている]
私たちはされていることが多い語ったが、これは真実ではない、ハードウェアは、プログラムがそれだけでコンパイルされたバイナリコードを見ているように書かれている言語を気にしないこと。たとえば、謙虚なZ80を考えてみましょう。8080命令セットへのその拡張には、C-スタイル(NULLで終了する)文字列をスキャンするのに役立つCPIRなどの命令が含まれますstrlen()。設計者は、Cプログラムの実行(文字列の長さがヘッダーにあるPascalとは対照的に)が、設計で使用される可能性が高いことを特定している必要があります。別の古典的な例は、Lisp Machineです。 他にどんな例がありますか?たとえば、特定のプロセッサが特定の言語の規則を好むようにする命令、レジスタの数とタイプ、アドレス指定モードはありますか?私は特に同じ家族の改訂に興味があります。

9
開発マシン上のウイルス対策ソフトウェアを支持する意味のある強力な議論を探している[非公開]
意見を形成するとき、学問的伝統に従うことは良い習慣です- あなたが保持する意見に反対することができる限り一生懸命に考え、反論を見つけようとします。 しかし、どんなに一生懸命努力しても、開発マシンでウイルス対策(および関連するセキュリティ対策)を支持する合理的な議論を見つけることはできません。 開発中のウイルス対策(AV)に対する議論はたくさんあります。 AVをオンにして1分間のビルドで10倍の時間がかかることは珍しくありません 会議の講演で、IntelliJ開発者は、IDEが遅い場合にAVソフトウェアが疑わしいと主張しています 解凍には、AVをオンにした状態で約100 kb / sの速度が伴います AVはCygwinを完全に使用不能にします(vimは単純なファイルを開くのに1分かかります) AVにより、同僚の電子メールから有用なファイル(JAR、DLL)をダウンロードできない AV /セキュリティ対策によりポートのブロックを解除できないため、開発に複数のコンピューターを使用することはできません AVは、MavenやAntなど、ファイルの回転率が高いプログラムのパフォーマンスを低下させます 最後になりましたが、AVは実際に私を何から保護しますか?私のAVプログラムがセキュリティスレッドを停止することを認識していません。 理由がNDAのものを開示することの恐怖である場合-心にそれを設定した場合、AVがそれを行うことを妨げる可能性はありません。 理由がソースコードやドキュメントを失う恐れがある場合-これには分散リビジョンシステムがあります(レポには少なくとも20のコピーがあり、毎日同期しています)。 顧客データの開示を恐れる場合、開発者は実際の運用データベースに接続して作業することはめったになく、代わりにおもちゃの環境で遊んでいます。 開発マシンでAVを使用することを支持する有意義な議論があったとしても、偏執的に保護された環境で仮想マシンを実行する能力に直面すると、それらはバラバラになります。 私はこの問題について心を開いておきたいので、開発者向けのウイルス対策ソフトウェアを支持する意味のある強力な議論を誰かが提示できますか?

19
仕事でより良い仕事をするために、自分のお金でハードウェアを購入して職場で使用しますか?[閉まっている]
職場では、かなり仕様のマシン(デュアルクアッド2GHz、4GB RAM、160GB 7200RPMドライブ、Win7)が与えられましたが、いくつかの場所(HDD / RAM)に欠けていました。ITスタッフはハードウェアを自分のハードウェアに交換しても問題なかったので、SSDと8GBのRAMを追加しました(複数のVisual Studioと仮想マシンを実行できます)。マシンを選択するのは会社のビジネス上の決定でしたが、ハードウェアの高速化により仕事での満足度と生産性が向上しました。 私の質問は、生活の質を向上させるために自分の仕事用ハードウェアに個人的なお金を費やす意思があるのは私だけだと思いますか?遡及的に「ハードウェアでこの500ドルを払い戻すべきだと思う」と言うことは可能ですか?

1
最新のCPUでの単一割り当てADT指向コードのパフォーマンス
単一の割り当てで不変データを操作すると、より多くのメモリが必要になるという明らかな効果があります。これは、常に新しい値を作成しているためです(ただし、隠れたコンパイラーはポインタートリックを実行して問題を軽減します)。 しかし、CPU(具体的にはそのメモリコントローラー)がメモリが(それほど)変化していないという事実を利用できるという点で、パフォーマンスの低下よりもパフォーマンスの低下を上回ることを何度か耳にしました。 私は誰かがこれが本当であるかどうか(またはそうでない場合)に光を当てることを望んでいました。 で別のポストにコメントそれがいることを言及した抽象データ型(ADTのは)私は、さらに好奇心作られたこれに関係しています、どのようにADTは、具体的にメモリとCPUの取引方法に影響しますか?ただし、これは別ですが、ほとんどの場合、言語の純度がCPUおよびそのキャッシュなどのパフォーマンスに必ず影響することに興味があります。

4
バグを再現するためのハードウェアのセットアップが入手困難または不可能な場合に、新しいコードを効率的にトラブルシューティングまたはテストする方法は?
私は中規模の会社(従業員150人、エンジニアリングチーム10人まで)で働いており、私のプロジェクトのほとんどは、半自動化されたテストアプリケーションを目的として、実験装置(オシロスコープ、光スペクトラムアナライザーなど)とのインターフェイスを含んでいます。ハードウェアのセットアップが利用できなくなった、または利用できなかったために、新しいコードを効率的にトラブルシューティングまたはテストできないいくつかの異なるシナリオに遭遇しました。 例1:ベンチトップタイプのセンサーを使用して10〜20の「バーンイン」プロセスを個別に実行するセットアップ-テスト用にこのようなセンサーを1つ取得でき、ときどきインターフェイスのすべての面をシミュレートするために1つを盗むことができました複数のデバイス(検索、接続、ストリーミングなど)。 最終的にはバグが発生し(最終的にはデバイスファームウェアとドライバーに存在する)、1つのユニットだけで正確に再現するのは非常に困難でしたが、これらのデバイスを10〜20個同時に使用すると「ショーストッパー」レベルに近づきました。これはまだ解決されておらず、継続中です。 例2:コアコンポーネントとして高価な光スペクトルアナライザーを必要とするテスト。このデバイスはかなり古いものであり、大企業に買収されて基本的に解体されたメーカーによると、その唯一のドキュメントは翻訳が不十分であると思われる長巻の(そして情報価値のない)ドキュメントでした。最初の開発中、私はデバイスを自分の机に置いておくことができましたが、物理的にもスケジュールどおりにも、24時間年中無休の複数週間のテスト中に縛られました。 デバイスに関連する、または関連しないバグが表示される場合、アプリケーションの外部でコードをテストして適合させるか、コードを盲目的に書いて実行と実行の間にあるテスト時間で絞り込もうとする問題をしばしば経験する必要があります。プログラムロジックでは、OSAと残りのテストハードウェアが適切に配置されている必要があります。 私の質問は、これにどのようにアプローチする必要があるのでしょうか?デバイスシミュレーターの開発に時間を費やす可能性がありますが、それを開発の見積もりに組み込むと、ほとんどの人が期待する以上に膨れ上がります。すべての問題を正確に再現できるとは限りません。また、ここで同じ機器を2回使用することはほとんどありません。ユニットテストなどで上達することができます...私はまた、問題について大声で話し、一時的な遅延が必要であることを他の人に理解させることができます。これは、研究開発の頭痛だけでなく、通常は冗談として認識されます製造業に売り込まれたとき。

6
IT要件を提案するのは開発者の仕事ですか?
私は、終わりに近づいているWebアプリケーションに取り組んでいる唯一の開発者です。現在、2、3か月後にライブにすることを検討しています。 これは非IT企業向けのWebアプリケーションです。彼らは独自の社内ITチームを持っていますが、ライブサーバーのハードウェア要件はどうなるかを尋ねられました。RAM、32ビットまたは64ビット。 社内のITチームがこれを行うべきではありませんか、それともプロジェクトに取り組んでいるのは私だけなので、プロジェクトのパフォーマンスに影響を与える可能性のある特定のハードウェア要件を彼らに知らせるのは私の責任ですか? 私がこの質問をしているのは、これをやったことがないからです。私はいつもサーバーを与えられ、その上にアプリを展開するように頼まれました。サーバーの構成などを心配することはありませんでした。

8
優れたプログラマーになるには、ハードウェアレベルで何が起こっているのかを理解する必要がありますか?
私は独学のプログラマーです。CS101でこの質問に答えられる場合に備えて。私は多くの言語を学び、使用しました。 プログラミングの問題に遭遇したとき、私はいつも同じ壁にぶつかっているようです。たとえば、関数によって返された配列へのポインターを処理する方法について、別のフォーラムで質問をしました。最初は、C ++の設計者が状況を処理するために設定した適切なテクニックがわからないだけだと考えています。しかし、以下の回答と議論から、何かが「返品」されたときに何が起こるかは本当にわかりません。 優れたプログラマーは、プログラミングプロセスをどの程度深く理解する必要がありますか?


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