2019年6月24日のブックマーク (7件)

  • C/C++でのメモリリーク検出方法 〜AddressSanitizer, Valgrind, mtrace〜 - kivantium活動日記

    C/C++でプログラムを書いているときに遭遇する厄介なバグの一つがメモリリークです。 今回はメモリリークを検出するのに使えるツールの使い方について書きます。 AddressSanitizer コンパイルオプションをつけるだけで使えて出力も見やすいのでおすすめです。 AddressSanitizerはGCC 4.8以降かLLVM 3.1以降で使うことができます。 コンパイル時にオプションをつけるだけでメモリリークを検出してくれます。(若干実行時間が長くなります) 以下のメモリリークのあるプログラム leak.cpp を例に使い方を説明します。 int main() { int *a = new int[10]; } newで作った動的配列をdeleteしていないのでメモリリークになります。 g++ -fsanitize=address -fno-omit-frame-pointer -g l

    C/C++でのメモリリーク検出方法 〜AddressSanitizer, Valgrind, mtrace〜 - kivantium活動日記
    toge
    toge 2019/06/24
    実効速度への影響も触れて欲しかった。
  • C++初心者からの脱出 - starpos - BOOTH(同人誌通販・ダウンロード)

    C++初心者から脱出するための知識をまとめたです。C++11以降の機能を使ったコードの好ましい書き方となぜそうすべきなのかについて説明しています。同じことを何度も教えるのは面倒だというのが主な理由で書は生まれました。 初心者ではなくても昔C++を使ってらした方で最近のC++ってどんな感じなの?という方にもオススメです。 C++20 以降の話は今のところ入っていませんが、使い勝手という点で変化が大きいのはテンプレートや標準ライブラリだと思いますので、書の内容はまだまだ使えるものだと思います。(必要だと思ったら改訂します)。 この電子版はDRMフリーで、他の制限も特にないPDFでの提供となります。 書のソースコードは https://github.com/starpos/get-out-of-cpp-beginners にあります。ライセンスは CC BY-NC-SA 4.0 です。

    C++初心者からの脱出 - starpos - BOOTH(同人誌通販・ダウンロード)
    toge
    toge 2019/06/24
  • Introducing the C++ Lambda Runtime | AWS Compute Blog

    AWS Compute Blog Introducing the C++ Lambda Runtime This post is courtesy of Marco Magdy, AWS Software Development Engineer – AWS SDKs and Tools Today, AWS Lambda announced the availability of the Runtime API. The Runtime API allows you to write your Lambda functions in any language, provided that you bundle it with your application artifact or as a Lambda layer that your application uses. As an e

    Introducing the C++ Lambda Runtime | AWS Compute Blog
    toge
    toge 2019/06/24
    aws lambdaでC++がとっくに使えるようになってた。
  • 120 行で vi っぽいエディタを作る - Qiita

    参考:Qiita では印刷がうまくできません。プリントしたい人や PDF 化したい人は http://gurakura.sakura.ne.jp/culture/vi-like_text_editor_by_120_lines/ の方を見て下さい(同じ内容です)。 IOCCC 91 Best Utility 実を言うと 120 行も必要なく、28 行で書けちゃったりするのですが("Best Utility IOCCC 91" https://github.com/SirWumpus/ioccc-ae/tree/master/91)、それはさておき、文書では現代風にこのプログラムを書き直してみます。古文の現代語訳みたいなものだと思っていただければ幸いです。 ちなみに IOCCC 91 で Best Utility 部門を受賞した全 28 行のプログラムは、このようなソースコードだったそうで

    120 行で vi っぽいエディタを作る - Qiita
    toge
    toge 2019/06/24
    比較的modernなC++で書き直したvi like editor
  • Pythonの知っておくと良い細かい処理速度の違い8個 - kumilog.net

    はじめに 標準入力 input と sys.stdin.readline ソート sort と sorted ソートの key ループ for と while リスト リストの初期化 二次元配列の場合 リストの値参照 リストへの値追加 それぞれの処理速度 まとめ はじめに 最近、PythonAtCoderなどの競技プログラミングに挑戦しています。これまであまりに気にしなかったけど、ちょっとした書き方で処理速度が変わってくることに気づいたので、これを気に少し調べてみました。 目次にあるように、標準入力、ソート、ループ、リストについて、計8個の処理の速度比較を行いました。処理速度の計測方法は、Mac Book Pro*1を使い、timeitでそれぞれ100回計測*2し、平均と標準偏差を求めています。 結果だけ知りたい方は、まとめへどうぞ。 計測に用いたコードは以下にあります。 github.

    Pythonの知っておくと良い細かい処理速度の違い8個 - kumilog.net
    toge
    toge 2019/06/24
  • 今Serverlessが面白いわけ

    プレゼンテーションスライド @ DevLOVE X 2019 Presentation Slides for Breakout session at DevLOVE X 2019 https://devlove.wixsite.com/devlovex Read less

    今Serverlessが面白いわけ
    toge
    toge 2019/06/24
    今楽しいというか、もう少しで面白くなるよねってところですかね。楽しみ。
  • 高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ

    先にまとめると ディスクI/Oに高い負荷をかけるシステムでNVMeデバイスを使うときweekly cron jobでfstrimが走る状況になってたら停止しろ じゃないとfstrimが走った瞬間にI/Oパフォーマンスが刺さって死ぬ fstrimを停止するならdiscard mount optionを有効化しろ、ただしその状態でのI/O性能で問題ないかどうか測っておけ discard mount optionを有効化しても大きいファイルの削除には気をつけろ、プチfstrimみたいになるぞ 追記されるばかりで大きくなるファイル(そして削除されるファイル)はNVMeじゃないデバイスに置いとけ 高I/Oスループットを期待するシステムでのNVMeとfstrim 社内で小さめのインスタンスを多く並べてトラフィックを捌いてたのを色々要件があって大きめのインスタンスにまとめるようなシステムアップデートをや

    高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ
    toge
    toge 2019/06/24
    なるほど、まさかそんなところが刺さるとは。