11.2 GDBを使用してデバッグする プログラムを開発するにあたって開発者は度々デバッグコードを書く必要があります。Go言語は、PHPやPythonといった動的な言語のようにコンパイラを必要とせず修正を行うだけで直接出力し、動的に実行環境下でデータを出力できるわけではありません。当然Go言語もPrintlnのようにデータを出力することでデバッグすることはできますが、毎回再コンパイルする必要があります。これは非常に面倒くさいことです。Pythonではpdb/ipdbのようなツールによってデバッグを行うことができますし、Javascriptにも似たようなツールがあります。これらのツールはどれも動的に変数情報を表示させることや、ステップ実行ができます。我々はGDBを使ってデバッグすることができます。ではこの節ではどのようにしてGDBによってGoプログラムをデバッグするのかご紹介しましょう。 G
3.4 Goのhttpパッケージ詳細 前の節でGoが如何にWebの作業モードを実現するかフローをご紹介しました。この節では、httpパッケージを詳しく解剖していきます。これはどのように全体のプロセスを実現しているのでしょうか。 Goのhttpには2つのコアとなる機能があります:Conn、ServeMux Connのgoroutine 我々が普段書くhttpサーバとは異なり、Goはマルチスレッドと高い性能を実現するため、goroutinesを使ってConnのイベント読み書きを処理します。これによって各リクエストは独立性を保持することができます。互いにブロックせず、効率よくネットワークイベントにレスポンスすることができます。これがGoに高い効率を保証します。 Goがクライアントのリクエストを待ち受けるには以下のように書きます:
$ bundle exec ./benchmark ================== Test String Length: 0 ================== Calculating ------------------------------------- Fast Blank 225.251k i/100ms Fast ActiveSupport 225.676k i/100ms Slow Blank 110.934k i/100ms New Slow Blank 221.792k i/100ms ------------------------------------------------- Fast Blank 29.673M (± 2.7%) i/s - 148.215M Fast ActiveSupport 28.249M (± 3.5%) i/s - 141.0
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く