雑なメモ書き

気楽にいきます

2019-03-01から1ヶ月間の記事一覧

objdumpを触ってみた

objdumpというコマンドのオプションを調べてたら わりかし面白そうなので試して見た --disassemble アセンブラのニーモニックを表示 Disassembly of section .init: 00000000000004e8 <_init>: 4e8: 48 83 ec 08 sub $0x8,%rsp 4ec: 48 8b 05 f5 0a 20 00 mov 0x200</_init>…

nmコマンドで遊んでみた

nm - オブジェクトファイルのシンボルをリストする https://linuxjm.osdn.jp/html/GNU_binutils/man1/nm.1.html このコマンドでオブジェクトファイルのシンボルをリストすることが出来る 割とオプションが豊富で面白いので試す --debug-syms #include <stdio.h> int m</stdio.h>…

gccで生成過程を眺めてみたりした

http://www.cc.kyoto-su.ac.jp/~hxm/cstext/prog06.html Cで開発しているとコンパイラさんが至れり尽くせりすぎて liner周りの知識がもわっとするのでメモ オブジェクトファイル生成 cc1でアセンブラ生成 asアセンブラからオブジェクトファイルを生成 gcc -g…

rustさわってみた(2)

コンパイラに推論させるとどの型になるのか気になった i32になるようだ。 そのほかには型の最大値と最小値がどう取れるかみた。 fn main() { let v = 5; println!("x is {}",v); let u8_min:u8 = std::u8::MIN; println!("u8 min: {}",u8_min); let u8_max:u…

cmakeさわってみた(1)

clion触っていると必要になるので調査 https://cmake.org/cmake-tutorial/ https://qiita.com/shohirose/items/45fb49c6b429e8b204ac ここの記述が分かりやすい ファイルを用意 #include <stdio.h> int main(int argc, char *argv[]) { printf("hello world\n"); retu</stdio.h>…

OpenCensusについて調べてみた

OpenCensusとは https://opencensus.io/ サービスからメトリクスと配布トレースを収集する単一のライブラリ 各言語のライブラリが出ているが今回はGoを調べる サポートされているバックエンドも多い 所謂分散トレーシングシステムへ格納する Azure Monitor、…

goのプログラムを観察するのにgopsが便利だった

gopsというツールがありまして https://github.com/google/gops memstatsやtreeというサブコマンドを使用するとgoで動作しているプログラムから簡単に取得出来たりするので大変便利です profileも楽に取れるしありがたい gops tree gops tree ... ├── 956 │ …

goのsqlにあるfreeConnにどこで追加してるか気になったので調べた

putConnDBLockedというメソッド中でやっていた ここでdb.freeConにappendしている } else if err == nil && !db.closed { if db.maxIdleConnsLocked() > len(db.freeConn) { db.freeConn = append(db.freeConn, dc) db.startCleanerLocked() return true } …

goのsql/databaseの接続でやり方間違えると資源枯渇したりして大変らしいので負荷をかけてみた

http://go-database-sql.org/surprises.html こちらのページに書かれている Opening and closing databases can cause exhaustion of resources. が気になったのでwrkで負荷をかけてみた。 条件 dockerでmysqlを立ち上げる SelectとUpdateが単純に走るだけの…