shiki0331’s blog

Webエンジニアの勉強ブログ。HTML/ CSS / JavaScript / Ruby / Ruby on Rails / React.js を中心に学んでいます。 ブログ内容で間違っている箇所などありましたら、ご指摘していただけると助かります。

CPUとは? CPUの性能を比較しよう!

CPU(Central Processing Unit = 中央 処理 装置)
 
CPUとは、人間に例えると「脳」です。CPUの性能が高ければコンピュータの処理速度が速くなります。
ただし、画像処理に関しては主にGPUが担当しているので、CPUの性能が高くてもカバーできません。

 

CPUの性能が高ければ高いほど良いってのはわかったけど「どこで性能を見れば良いの?」と思いますよね。

 

CPUの性能を比較するときには、以下の項目をチェックしましょう。

 

・コア数

・スレッド数

ベンチマークスコア(passmark)

・クロック周波数 

キャッシュメモリ

 

上から順に説明していきます。

 

「コア数」とは先ほどの人間の例えを使うと「脳の数」です。

 

なので、コア数が多ければ多いほど脳が沢山ある事になるので、処理速度が速くなります。

 

なぜ処理速度が速くなるかというと、一つ一つの機能に対して一つの脳で担当できるからです。

 

例えば4つのコアがあったとすると、1つはWindows担当。2つ目はExcel担当。3つ目はChrome担当。4つ目はペイント担当。このように振り分けることができます。

 

これが1つのコアでは4つの機能を1つのコアで担当しなければなりません。

 

こう考えると当然、コア数が多ければ処理速度は速くなりますよね。

 

 

次は「スレッド数」です。

 

スレッド数は一つのコアが担当できる仕事の数です。

 

例えば1コア2スレッドとすると、1つのコアでは2つの仕事までしか同時にできません。

 

つまり「スレッド数」とは、1コアあたりの同時にこなせる作業数です。

 

ちなみに1コア1スレッドで同時に複数の作業を行えないわけではないですが、効率よく仕事を遂行できないので処理速度は落ちます。

 

 

次は「ベンチマーク」です。

 

ベンチマーク様々な企業がCPUの格付けを数値化しているものです。

 

その中でもPassmark社の「passmark」という数値があらゆるCPUを数値化しているようです。

 

この「passmark」の数値が高ければ高いほどCPUの性能が高いことを表しています。

 

しかし、注意が必要です。

 

ベンチマークの数値で比較した結果通りにならないケースもあります。

 

理由は、CPUが発揮する性能はプログラムによって異なるからです。

 

Passmark社がベンチマークスコアを出すために実行するプログラムと、パソコンを使用する人が利用するプログラムが完全に一致することはありえません。

 

そのため「passmark」の数値は必ずしも正確ではありません。

 

ただ指標としては参考になります。数値を鵜呑みにせず、CPUの性能を検討する必要があるでしょう。

 

 

次は「クロック周波数」です。

クロック周波数は「回路が処理の歩調を合わせるために用いる信号が、1秒に何回発生するかを示す値」。

 

クロック周波数が高ければ高いほど、コンピュータはたくさんの作業を同一時間内にできると考えていただければ大丈夫です。

 

周波数なので単位は「Hz(ヘルツ)」です。

 

現在主流なのは「GHz(ギガヘルツ)」です。

20年くらい前は「MHz(メガヘルツ)」だったみたいです。技術の進歩により向上したんです。

 

ちなみに

1MHz 1秒あたりに100万回

1GHz 1秒あたりに10億回

 

こう見るとめちゃくちゃ技術が進歩してますね!!

 

 

最後に「キャッシュメモリ」です。

 

キャッシュメモリ」と一緒に「メインメモリ」と「ハードディスク」について学びましょう。

 

同時に学んだ方が理解がよりしやすいためです。

 

上記の3つは大枠で捉えると、全て「データを記憶する装置」です。

 

違いは「処理速度」です。

 

                処理速度

(速) キャッシュメモリ  <  メインメモリ  <  ハードディスク (遅)

 

「ハードディスク」から処理を行うデータをCPUに渡します。

 

しかし、CPUの処理速度はとても速いので「ハードディスク」からCPUにデータを送るのでは間に合いません。

 

その中間地点として「メインメモリ」があります。

 

しかし!これでもまだCPUの処理速度には追いつきません。

 

そこでCPU内にある「キャッシュメモリ」が存在するのです。

 

よく使われるデータは「キャッシュメモリ」に入れといて、すぐにデータを出せるようにしておくのです。

 

キャッシュメモリの容量が多ければ、すぐにデータを出せるようにできるデータ量も多いわけですね。

なので容量が多いにこしたことはないですね!

 

最後にCPUの性能を比較するときの項目をもう一度確認しましょう!

 

・コア数

・スレッド数

ベンチマークスコア(passmark)

・クロック周波数 

キャッシュメモリ

 

個人的にはプログラミングをする上で、全部の項目をすみずみまで理解する必要はないと思うので、なんとなーく理解しておきましょう!!

 

 

最後まで読んでいただきありがとうございました。

 

 

2進数から10進数 10進数から2進数への変換方法

2進数から10進数、10進数から2進数への変換方法を解説していきます!

 

2進数?10進数?とわからない人は下記のブログを読んで下さい。

shiki0331.hatenablog.com

 

 

2進数を10進数に変換するには、2進数の各位の数字にその位の「重み」を掛けて、すべての桁について足します

 

は?って感じですよね。笑

 

僕はそうでした。笑

 

説明していきます!

 

「重み」から理解していきましょう。

2進数のn桁目の重みは、2n-1

 

例として、2進数である「11010」の重みを求めましょう。

 

  1     1    0     1    0

5桁 4桁 3桁 2桁 1桁

 

重みを求めるには、上記の2n-1に当てはめてみましょう。

 

5桁目の重みは、25-124

となります。

4桁目は24-123となります。

3桁・2桁・1桁も上記と同じように計算します。

 

「11010」の重みは

 

2進数   1   1  0  1  0

重み    16  8  4  2  0

 

上記のようになります。

 

2進数を10進数に変換する計算式をもう一度確認しましょう。

 

2進数の各位の数字にその位の「重み」を掛けて、すべての桁について足します。

 

なので次は、2進数の各位の数字にその位の「重み」を掛けます

 

2進数   1   1  0  1  0

重み    16  8  4  2  0 

1×16 + 1×8 + 0×4 + 1×2 + 0×0  =  26

 

上記の計算から

2進数である「11010」を10進数に変換すると26になります。

 

 

次は10進数から2進数に変換する計算をみていきましょう。

 

10進数を2進数に変換するには、変換する10進数を2で繰り返し割っていき、その余り(0か1になる)を下位から上位へ順に並べていきます。

 

文だけ見ても想像しにくいと思うので、早速説明していきます。

 

今回は10進数である「26」を2進数に変換していきます。

 

まずは「変換する10進数を2で繰り返し割っていき、その余り(0か1になる)」を書き出していきます。

 

26 ÷ 2 = 13  余り 0

13 ÷ 2= 6     余り 1

6 ÷ 2 = 3      余り 0

3 ÷ 2 = 1      余り 1

 

これを最後の答えである1から順に並べていきます。

 

下から並べると「11010」となります。

 

これが10進数である「26」を2進数に変換したものとなります。

 

ポイントとしては、最後の答えから順に並べることです。

 

今回の計算に置き換えると、最後の答えである3 ÷ 2 = 1 を書き出します。

 

1  

 

後は各余りを下から順に並べるだけです。

 

11010

 

理解できましたでしょうか?

 

 

ご不明な点などありましたら気軽にコメント or 連絡頂けたらと思います。

 

最後まで読んで頂きありがとうございました。

 

bit byte 2進数とは?

コンピュータの世界ではbitbyteという単位があります。

 

他にも、KBキロバイト)・MB(メガバイト)などの単位もあります。

 

これは聞いたことがある人も多いのではないでしょうか?

 

bitはコンピュータが扱う最小単位

 

byteはbitが8個集まったものです。

ex)8bit = 1byte

     32bit = 4byte

 

 

次に2進数です。

 

コンピュータのデータは全て2進数で表現されていることを知りましょう。

 

2進数とは01の2種類の数字で表現されます。

 

2種類のみで数字や文字、画像や動画、音声などを表現しているのです!

 

ビックリですよね!

 

ちなみに人間が使用しているのは10進数です。

私たちは0〜9の10種類で数字を表現していますよね。

 

「え、でも2進数だとどうやって6とか20とかの数字を表すの?」と思いますよね。

 

2進数では「1」の次に繰り上がりが起きます。

ex)10進数である「2」を2進数で表すには、「10」

  10進数である「3」を2進数で表すには、「11」

     10進数である「4」を2進数で表すには、「100」

     10進数である「10」を2進数で表すには、「1010」

 

10進数では「9」の次に繰り上がりが起きますよね。

それと考え方は同じなのですが、馴染みがないので理解しにくです。

 

「2進数を10進数 10進数を2進数に変換する計算式」があります。

下記のブログをご覧ください。

 

shiki0331.hatenablog.com

 

 

ちなみに、なぜコンピュータは2進数を採用しているかというと、2進数だと電圧や電流のONとOFFで表現できます。

 

電気信号に置き換えるには10進数ではなく、2進数が単純で適しているのです。

 

 

最後に蛇足です。

1946年に作られた世界で最初のコンピュータであるENIACは10進数を用いられていました。

 

しかし、複雑になってしまい失敗してしまったという歴史もあります。

 

 

 

最後まで読んでいただき、ありがとうございます。

 

 

 

30分チャレンジ プロになるためのWeb技術入門 第二章「Webはどのように発展したか」 前半

30分チャレンジです!
 
今回の第二章は長かったので前半・後半に分けます!
 
「Webはどのように発展したか」前半部分を要約していきます。
※注 要約してみたら「Webがどのように発展したか」というよりも、用語の説明が多くなってしまったのでご了承ください、、
 
 インターネットの原型は1969年に生まれたが、20年近くは大学や研究機関の関係者達しか利用していなかった。
 その理由はコンピュータやネットワーク資源が非常に高価。利用用途が電子メールの交換やファイル共有といった地味なものが中心だったのが理由として考えられる。
 
WWW(World-Wide-Web)が生まれたことで、たくさんの人達にも普及した。
 
WWWとは、1989年にCERNの研究者が情報共有を目的に発明された。まず研究成果をHTML(Hyper Text Markup Languageの形式で表現することを考えた。
 
ここで注目されたのは、Hyper Textと呼ばれる仕組みで、文章間の参照がHyper Linkというコンピュータが理解できる形式で記述されているので、参照先の文章をすぐに閲覧できる。
 
WWWの仕組みにより情報の伝達効率が大幅に上がった。
 
 
WWWによるHyper Textの公開と閲覧は、
・Webサーバー(server=仕える人) ex)Apache
・Webクライアント(client=お客様) ex)Chrome,Safari
2つのソフトウェアで実現されている。
 
Webサーバーがネットワーク上に公開するHyper Textを蓄積し、Webクライアントの要求でHTMLファイルを渡す仕組みになっている。
 
 
クライアントとサーバの2つに役割を分けるのは、コンテンツをWebサーバのように1つのコンピュータにまとめた方が更新が楽だからである。
 
一方、コンテンツを閲覧するためにコンテンツを保管しているWebサーバーを利用者が直接操作するのは非現実的。
 
そのため利用者のコンピュータをWebクライアントと利用できるようにし、WebサーバーとWebクライアントの間をインターネットで接続することでWWWを実現している。
 
 
しかし、Webサーバーは大量のデータからWebクライアントの要求に応え、必要な情報を取得するのは大変。
 
そのためにURL(Uniform Resource Locator=統一資源位置子)でリソースの場所を示してあげる必要がある。
 
 
URLは、スキーム・ホスト名・パス名で構成されている。
 
スキームはリソースを取得するための方法を表します。ほとんど「http」が使用されている。
 
ホスト名はリソースが存在するホスト(コンピュータ名)を表す。
ホストコンピュータはネットワークに接続されて他のコンピュータから要求を受け取り、処理した結果を返すようなコンピュータのこと。
 
ex)www.littleforest.jp
wwwはwwwサーバというコンピュータ
littleforestはlittleforestという組織
jpは日本の
 
 
パス名はホスト名で指定されたコンピュータ上のリソースの位置を示す。
 
ex)webtext/index.html
webtextディレクトリの下にあるindex.htmlというファイルを示している。
 
 
HTTP(Hyper Text Transfer Protocol)とは、WebサーバーとWebクライアントが通信をするための共通の約束事。
 
約束事を決めることで、どのコンピュータ同士でも通信ができるようになっている。
 
他のことで例えると、点字は決まった点の配置でなんて読むか約束が決まっている。この約束事がなければ、点字はただの散らばった点になってしまう。
 
そうならないように、コンピュータ同士でも約束事が必要なのである。
 
 
 
前半は以上です。
 
自分が要約するとタイトルの「Web はどのように発展したか」というよりも、WWW・Webサーバー・Webクライアント・URL・HTTPの説明みたいになっていますね。笑
 
本当はWebがどのように発展したか細かく書いてあるんですよ!笑
 
重要なとこを抜き取ったら用語の説明みたいになってしまった、、、
 
 
もしWebがどのように発展したか気になる人は、実際に本を読んでみてください笑
 
次回は後半です!

15 分チャレンジ プロになるためのWeb技術入門 第一章「Webアプリケーションとは何か」

今回から「プロになるためのWeb技術入門 なぜ、あなたはWebシステムを開発できないのか」を読んで要約していきます。

 

15分で第一章「Webアプリケーションとは何か」を要約していきます。

 

 

 

Webアプリケーションとはなんでしょうか?
 
アプリケーションを大きく分けると、2つに分けられます。
デスクトップアプリケーションとWebアプリケーションに分けられます。
 
デスクトップアプリケーションから説明していきます。
・特徴は基本的に全ての処理がPC上で行われている。
・画面はOS上で表示されている。
・利用するにはソフトウェアをPCへインストールする必要があり、インストールされたPC上でのみ動作します。
 
ex)Word、ExcelOutlookなどのオフィスアプリケーション
 
 
次にWebアプリケーションです。
・特徴は主な処理はPC上ではなくサーバーと呼ばれるコンピュータがで担当している。
・画面はHTMLで表現され、 Webブラウザ(chromeInternet Explorer、Fireboxなど)上に表示されている。
・アプリケーションをPCへインストールする必要がない。インターネットに繋がっているPCがあればいつでも利用できる。
 
ex)駅の乗り換え検索、Amazonなど
 
 
 
なんとなく違いはわかっていましたが、理解があやふやだったので知識の整理になりましたね!
 
現在は当たり前のようにスマホでWebアプリケーションが使われていますね。
本当に便利な世の中です!!
 
最後まで読んでいただき、ありがとうございました。
 

振り返り KPT 2

面談で自分の考え方・価値観を伝えられるようになってきた。

今までは会社の理念やミッションに近寄ろうとしてしまっていた。


面談の中で質問の受け答えや、聞きたいことを質問することはできている。

しかし、質問で終わってしまい会話ができていないと感じた。

その人を知るには質問ではなく、会話が必要なのではないか。


質問ではなく会話をするには、深く考えずに疑問に思ったことを聞き、話たいことを話すようにするべきではないか。


日常での会話とおなじに考えるべきだろう。



振り返りを行うと明日の行動に理由が持てていいですね!


長期間の大きな目標よりも、短期間の小さな目標が大切なんじゃないかと思うけどこの頃。笑




振り返りKPT

最近ソニックガーデン代表・倉貫さんのブログを見てから、「振り返り KPT」を良いなと思いTwitterでやってみました。


KPTの詳しくは倉貫さんのブログ見て下さい。https://kuranuki.sonicgarden.jp/2018/04/kpt-method.html


けど、Twitterでやる意味はないかなと思いました。


初めは140字以内で要約する練習になるし良いかなと思ってたんですが、それだけのためにTwitter使うのもなと思いました。


あくまで自分のために書くものですしね。


振り返り KPTを広めていく上ではTwitterの方がいいのかな?


とりあえずは今後、はてなブログに書いていきます。



では今日の振り返り KPTです。



考え方・価値観が固まってきた。


考えや思ってることを文章にしたりするのはいいけど、口に出すのは上手くできないから普段から発言しよう。


明日の面談は自分を取り繕わないようにする。



以上です!


読んでくれた方はありがとうございました。