タグ

2023年10月31日のブックマーク (2件)

  • go build を使わずにGoプログラムをビルドする

    go build を使わずにGoのプログラムをビルドすることはできるのでしょうか。 結論から言うとできます。 シェルスクリプトで go buildを自作してみたら、2週間ほどでkubectl[1]がビルドできるところまでいけました。 kubectl , uber-go/zap, spf13/cobra, golang/protobuf など有名どころのモジュールをビルドできる クロスコンパイルをサポート(下記4通り。CPUamd64 ) MacMac MacLinux LinuxMac LinuxLinux ちなみに自作Goコンパイラ babygo と自作アセンブラ goas をこの自作ビルダでビルドしてみたら成功しました。なかなか感慨深いものがあります。 ビルド速度が遅かったり[2]キャッシュの扱いが雑なので実用性はないですが、学習用素材としての価値はあると思

    go build を使わずにGoプログラムをビルドする
    Clomie
    Clomie 2023/10/31
  • Go の pprof で ボトルネックを探して ISUCON で優勝する

    はじめに pprofとは Goで動くアプリケーションのプロファイリングを行うことができる標準パッケージです。 アプリケーション実行時におけるCPU時間などの計算資源の消費を処理ごとに計測することができます。 runtime/pprof と net/http/pprof があり、後者は前者をHTTPサーバ経由で提供してくれるパッケージです。 ISUCONの練習環境を想定しています この記事では net/http/pprof を使ってHTTPサーバのプロファイリングを行う手順を説明します。 環境としては ISUCON の練習環境を想定しています。 ISUCONの練習環境としては、負荷をかける側のベンチマーカー用サーバと、負荷を受ける側の競技用サーバが提供されています(例: isucon/isucon12-final )。 外側からボトルネックを探す ISUCON で ボトルネックの特定は外側

    Go の pprof で ボトルネックを探して ISUCON で優勝する
    Clomie
    Clomie 2023/10/31