タグ

2015年2月3日のブックマーク (11件)

  • golang で string を []byte にキャストしてもメモリコピーが走らない方法を考えてみる - Qiita

    package main import ( "unsafe" ) type foo struct { k int64 v int64 } func main() { f := &foo{3,4} // unsafe.Pointer() で匿名ポインタにして // uintptr() で演算可能にして // +8 バイト(64bit)足して // unsafe.Pointer で匿名ポインタに戻して // そこにはフィールド v があるはずなので *int64 にキャストして // デリファレンスすれば出来上がり *(*int64)(unsafe.Pointer((uintptr(unsafe.Pointer(f))+8))) = 5 // グヒヒ println(f.v) // 5 } 0x001c 00028 (stringbytes2.go:8) LEAL go.string."he

    golang で string を []byte にキャストしてもメモリコピーが走らない方法を考えてみる - Qiita
  • 美少女と学ぶ圏論 - Just $ A sandbox

    ここまで書いて飽きました. 1章 圏とその構造 1.1 圏の定義と千景の講義 「4月からのゼミはもう決めた?」 「うん. とりあえず,クラスの子とホモロジー代数ゼミをやろうと思ってるよ. 春休みのうちに予習を進めないと」 「ふぅん,ホモロジー代数ね」 千景は読んでいたをパタンと閉じて, 勢い良く立ち上がったと思ったら大きく伸びをして, つかつかと足を引っ掛けるようにして黒板の前まで歩き, そのあと立ち止まってからくるりと振り返ってこちらを見た. 「homologyはいいね. 複雑な空間から単純だけど重要な情報を抜き出せる. 複雑に絡み合った網の中の, 当に大切なものを拾い上げるようにして情報が得られる. homologyはとてもいいよね」 「千景はホモロジー代数もやってるの?」 「必要な時に扱うだけね. Abelian categoryはそんなに詳しくないし」 「あーべりあんかてごりー

    美少女と学ぶ圏論 - Just $ A sandbox
    hiroyukim
    hiroyukim 2015/02/03
  • Electric Fenceを使ってみる

    $Id: howto-efence.html,v 1.1 2000/07/05 13:43:38 sakane Exp $ %Hd: Electric Fenceを使ってみる 何? 環境変数 マニュアルで推奨されている使い方 その他 o 何? 自分の技術力を越えたプログラム書く時に超便利なツール。 できる事 o バッファ・オーバーラン o バッファ・アンダーラン o 開放した領域を触る o サイズ 0の malloc を見つけることができる。 コンパイル時に libefence.a をリンクする事で malloc(3)や free(3)を置き換える。 欠点は o 激しくメモリを使う。 o プログラム動作が異常に遅くなる。 何はともあれ使ってみる。 #include #include #include int main() { char *c; c = malloc(4); c[3]

  • YAMD

    YAMD is Yet Another Malloc Debugger. It's a package for finding dynamic allocation related bugs in C and C++. It currently runs on Linux/x86 and DJGPP. The current version is 0.32. Download: yamd032.zip (43K) yamd-0.32.tar.gz (35K) Some people have reported problems with do-syms on recent distributions. Here is a version of the do-syms script that claims to fix it, submitted by Alexey Cheusov. Dis

  • process-book

    この文書はなんですか? この文書は*nix系のシステムにおけるプロセスやシグナルなどについて説明することを目的に書かれました。「プロセスとかよくわかってないからちゃんと知りたいな」みたいなひとたちが想定読者です。 書いているあいだは gist で管理されていたのですが、ボリュームが大きくなったので github で管理するように変えました。 目次 導入 プロセスの生成 プロセスとファイル入出力 ファイルディスクリプタ preforkサーバーを作ってみよう ゾンビプロセスと孤児プロセス シグナルとkill プロセスグループとフォアグランドプロセス epub と pdf epub化したもの、pdf化したものが release ディレクトリに入っています。thanks to mitukiii & moznion! ライセンス この 作品 は クリエイティブ・コモンズ 表示 - 継承 3.0 非移

  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • include_pathを探しにstat()を呼びまくるのを眺める - おぎろぐはてブロ

    id:koyhogeさんのPHPのコードキャッシュがなぜ速いのか - Blog::koyhoge::Techから。(先日はありがとうございました m(__)m) 「PHPは内部でstat()を呼びまくっているので遅い」とのことですので、include_pathの後ろの方のディレクトリにあるスクリプトファイルを大量にrequireしていたりすると、それだけでコードキャッシュのメリットが出てくるのかもしれません。 PHPのコードキャッシュがなぜ速いのか - Blog::koyhoge::Tech どのレベルからキャッシュが利用されるのかは、ちょっと記憶が無いので、コードを読み直さないとダメなのですが、「stat()を呼びまくって遅い」のstat()が爆発的に呼ばれる動きを軽く説明?したいとおもいます。(早く寝なきゃと適当に書いてるので、説明になってない。。ーー;いかんせん、こういうのあまりやら

    include_pathを探しにstat()を呼びまくるのを眺める - おぎろぐはてブロ
  • gdb の使い方・デバッグ方法まとめ

    たとえば、変数 var の値を2進数で表示したい場合は、次のように指定します。 (gdb) p/t var 一覧表示 whatis 変数の型を調べる。 info b 今設定しているブレークポイントの一覧を表示 セグメントフォルトをした後に利用すれば、どの関数で発生したか確認できます。 info stack 関数の呼び出しスタックの一覧を表示 info Thread 存在しているスレッドの一覧を表示 異なるアドレスにおける処理継続 以下のコマンドを使用することで、ユーザが選択したアドレスにおいて実行を継続させることができます jump linespec linespecで指定される行において、実行を再開 jump *address addressで指定されるアドレスにある命令から、実行を再開 アドレスが分かっている場合のメモリリーク出力 xはhexの意味です。 (gdb) p (char*)

    gdb の使い方・デバッグ方法まとめ
  • Do you debug C++ code in Vim? How?

  • Use Vim like an IDE

    Tip 1119 Printable Monobook Previous Next created 2006 · complexity intermediate · author Matt Zyzik · version 6.0 I use Vim for all text editing, even software development. At one point I stopped using IDEs. One major reason is that Vim can do all the major things I need from IDEs (tabs, file trees, grepping, syntax highlighting, indentation, completion, "quickfixing", etc). Vim Plugins[] Still V

    Use Vim like an IDE
  • straceを使ったデバッグ | OSDN Magazine

    プログラムが機能を果たせない場合には、有用なエラーメッセージを返し、問題を解決する手がかりを提供するのが理想的だ。しかし残念ながら、このような理想的な状況は珍しく、アプリケーションでエラーが発生したときに、手元に何の情報もないことも多い。 ここで、デバッグツールの登場だ。私にとってなくてはならないツールの1つが、straceだ。straceはシステムコールトレーサで、すでに実行されているプログラムによって発せられたコールを追跡する(straceを既存のPIDにバインドする)ことも、テストしたいプロセスをstraceに開始させることもできる。 では、straceの使い方を実例とともに見ていくことにしよう。 KDE起動時の問題 以前、私はKDEを起動する際の問題をデバッグしていた。返されたエラーメッセージからは、何の手がかりも得ることができなかった。 _KDE_IceTransSocketCr

    straceを使ったデバッグ | OSDN Magazine