Carpe Diem

備忘録

Go言語の良いところ

概要

Goの良いところってなんだろう?と思ってまとめます。
多分新しいことを知ったら追記していきます。

よく言われるところ

コンパイルが速い

JavaC++に比べてかなり高速です。

メモリ安全

GoはC言語に近いですが、C言語で問題になっていたメモリ周りは言語側でちゃんとカバーして使う側が意識する必要がなくなってます。

型安全性

LL言語に比べれば。

続きを読む

goroutineはなぜ軽量なのか

概要

以前の記事で

christina04.hatenablog.com

Goはスレッドよりはるかに軽量なgoroutineでC10K問題を解決する、という話をしましたが、goroutineが軽量なのはなぜか?という理由を深掘りしたことがなかったのでしてみました。

環境

軽量と呼ばれる理由は2つ

大きく分けると以下の2つのポイントがあります

  • スレッドに比べてメモリ使用量が低い
  • スイッチングコストが低い

それぞれ説明していきます。

続きを読む

Goのpprofの使い方【メモリ編】

概要

前回

christina04.hatenablog.com

にてpprofのコマンドラインツールの使い方を説明しました。

今回はメモリについて

といったところの調査方法を説明します。

環境

続きを読む

Goのpprofの使い方【コマンドラインツール編】

概要

前回

christina04.hatenablog.com

にてpprofの基本的な使い方を説明しました。

今回はさらに詳細に調べるためのコマンドラインツールの使い方を説明します。

環境

続きを読む

ECS Fargateを本番環境で使用する前に知っておくべき注意点

概要

ECS Fargateがリリースされてから検証・導入を進めています。
インスタンスの管理をする必要がなくなり非常にメリットを感じている一方、本番環境で使う上で注意すべき点もあるのでそこをまとめます。

環境

  • Fargateプラットフォーム 1.2.0

問題点

dev, stg環境で検証してみて、現状感じている問題点を挙げていきます。

続きを読む

会社のディベロッパーブログを書きました

概要

会社の公式ブログに投稿したのでその紹介です。

developers.cyberagent.co.jp

AWAではサブスクリプション(定期購読)型の課金体系をとっているのでそういったサービスを出す方の参考になれば幸いです。

続きを読む

Webサーバにおけるソケット周りの知識

概要

サーバサイドの仕事をしているとソケットという概念に遭遇すると思います。
ソケットを理解すると

  • TCPセッションの流れ
  • ulimitでnofileを上げないとコネクション増加した時のToo many open filesが出るのはなぜか
  • なぜサーバの待ち受けポートは1つで、クライアントのポートは接続するたびに新しいポートが必要なのか
  • unix domain socketはなぜファイルパスを指定するのか
  • Circusはなぜgraceful restartが可能なのか

といったことが分かるようになります。
今回そういったソケット周りの知識を理解するためにまとめます。

続きを読む