プラカンブログ
プラカンブログ

プラカンブログ

「プログラミング⾔語 Goを使う」の巻

システムのまついです


Go⾔語はGoogleが開発したプログラミング⾔語です。
この⾔語はコンパイル型処理系を持つ開発⾔語であり並列処理が簡単に記述できる特徴があります。
システム開発経験のない⽅はイメージしにくいと思いますが、できるだけ簡単に説明をさせていただきます。
まずコンパイルですが、これはプログラムソースをコンピュータのCPUで直接実⾏される機械語(命令)に変換することです。
実装⼿順としてはコンパイラプログラムでプログラムソースをコンパイルして、その結果得られた実⾏形式のプログラムを実⾏する(あるいは配置)ことになります。
コンパイル型処理系の開発⾔語はおもにアプリケーション開発で使われるC++、C#、Java、そしてGoがあります。
⼀⽅、コンパイル型処理系とは別にインタプリタ型というのがあります。
このインタプリタ型はプログラムソースを1⾏ずつコンパイルして実⾏していくので処理は低速ですが実装⼿順は簡単になっています。
この処理系を持つ⾔語はWEB系アプリケーション開発で使われるJavaScriptやPHPがあります。

次に処理⽅法ですが、プログラムコード(機械語)を処理する⽅法には並列処理と逐次処理があり、下記の違いがあります。
・並列処理は同時に複数の処理を実⾏する
・逐次処理は1つずつ順番にひとつの処理を実⾏する
例として、順番に処理を⾏う逐次処理は3分と2分かかる2つの処理がある場合すべて完了するには合計5分かかります。
それに⽐べて並列処理は3分と2分の処理を並列で⾏いますので3分後にはすべて完了します。
さて、掲題のGo⾔語を試してみようと思ったきっかけは、PHPでWEB APIの開発をしているときに、このGo⾔語がWEB APIの開発に使われているという記事を読んだからです。
WEB APIとは、HTTPプロトコルを⽤いてネットワーク越しにあるサーバーの情報(機能)を得る(呼び出す)ためのプログラム(インターフェース)の事です。
例えば、JavaScriptにはデータベースへ直接アクセスする機能はありませんが、JavaScriptがデータベースにアクセス可能なインターフェース(プログラム)を呼び出すことでデータを得る事ができます。
下記URLは百⼈⼀⾸のデータを得るWEB APIで、ブラウザで直接叩いてみるとデータが表⽰されます。
HTTPプロトコル(http://)でget.phpというPHPプログラムを呼び出してJSONというフォーマットで結果を表⽰しています。

百⼈⼀⾸API
このWEB APIはだれでも、どこでもお⼿軽に利⽤できるしくみとなっています。

PHPを使ったWEB API開発は、実装する内容によってはレスポンス(応答速度)の遅さが問題になったりします。
アクセス負荷がレスポンスの悪いAPIに加わると、そのサーバーのすべてのWEBサービスが影響を受けてしまう事も考えられます。
レスポンスを早くすることですべてが解決するわけではありませんが、コンパイル⾔語を使ってどのくらい改善できるかをPHPとGoを使って検証してみました。
どちらも同じデータベースデータ(140件)を読み込んでそのままJSONで結果を返す、という処理にかかる時間を⽐べてみました。
検証の結果、総合的にGoの⽅が2倍ほど早く、インタプリタ⾔語とコンパイル⾔語の処理速度の違いが顕著にでた結果となりました。

PHPの場合

PHP1.jpg

Goの場合

go1.jpg

この記事は MATUI が書きました。

プラカン(PLUS DESIGN COMPANY)が目指す3つの顧客満足

  1. ホームページのできあがりに
    満足していただく

    • お客様のご要望、目的の達成
    • ホームページの利便性や満足度の向上
    • ブランドイメージの向上 など
  2. 仕事の進め方に
    満足していただく

    • スケジュール遅延のないスムーズな進行
    • お客様の理解度、知識、経験に応じた親切で分かりやすい進行
    • セキュリティ意識の高い安全な進行管理 など
  3. サポート・フォーローに
    満足していただく

    • 公開後も安心なサーバー保守、CMS保守、コンテンツの保守管理
    • 集客、コンバージョンを強化するためのアクセスログ解析
    • 集客、コンバージョンを強化するためのコンテンツの改善 など

詳しくはWEBコンサルティングをご覧ください

WEBコンサルティング

ホームページに関するご要望がございましたら、お気軽にご相談ください。

Contact Us

お問い合わせをお考えの方

お問い合わせ

Estimate

お見積りをご希望の方

お見積り

お電話でのお問い合わせ