タグ

ブックマーク / mametter.hatenablog.com (7)

  • CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも

    English version 要約 dockerはデフォルトでセキュリティ機構(Spectre脆弱性の対策)を有効にします。この影響で、RubyPythonのようなインタプリタは速度が劣化します。特にCPU律速なプログラムで顕著に遅くなります(実行時間が倍くらいになることがあります)。 現象 Rubyで1億回ループするコードを、直接ホスト上で実行する場合と、docker上で実行する場合で実行時間を比較してみます。 直接ホスト上で実行した場合: $ ruby -ve 't = Time.now; i=0;while i<100_000_000;i+=1;end; puts "#{ Time.now - t } sec"' ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux] 1.321703922 sec docker

    CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも
  • Rubyのテストのややこしい失敗を直した話 - まめめも

    Ruby の CI 維持業というのはこんな感じという事例紹介。 CIを観察する RubyのCIがときどき次のように失敗していました。 1) Error: TestM17N#test_object_inspect_external: Encoding::CompatibilityError: incompatible character encodings: UTF-8 and UTF-16BE /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m17n.rb:311:in `encode' /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m17n.rb:311:in `inspect' /tmp/ruby/v2/src/trunk-test-random/test/ruby/test_m1

    Rubyのテストのややこしい失敗を直した話 - まめめも
  • 『Ruby で学ぶ Ruby』非公式あとがき - まめめも

    ref: http://ascii.jp/elem/000/001/230/1230449/ 「RubyRuby を作りながら Ruby を学ぼう!」という ascii.jp の連載、おかげさまでほぼ予定通りに無事に終わりました。執筆の経緯を書いておきます。 昨年の 6 月ごろ、「抽象によるソフトウェア設計」や「型システム入門」のときにおせわになった編集者の鹿野さんに声をかけて頂きました。「ふつうの Ruby 入門はもうたくさんあるので、ちょっと変わった Ruby 入門を書けないか」という話でした。 それを聞いた瞬間、「Ruby インタプリタの開発を通して Ruby を学ぶ」という構想が湧きました。Ruby は主に Web やテキスト処理を対象としているので、言語処理系や記号処理を題材にした入門は目新しそうだし、なによりそういうのに興味を持つ Ruby ユーザがもっと増えてほしい。

    『Ruby で学ぶ Ruby』非公式あとがき - まめめも
  • 『API デザインケーススタディ』の紹介 - まめめも

    著者の田中哲さん (@tanaka_akr) から献をいただきました! *1 APIデザインケーススタディ ~Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方 (WEB+DB PRESS plus)posted with amazlet at 15.12.14田中 哲 技術評論社 Amazon.co.jpで詳細を見る (電子版)をもらったのは RubyKaigi の前日の夜。翌日に TRICK 2015 の発表を控えていましたが、読み始めると面白すぎて、発表前までに読み終えてました。ちなみに献とは別にジュンク堂 RubyKaigi 店で一冊買いました。(サインもろた) 自分が思った、読者層ごとの勝手な紹介を書いてみます。 普通の Ruby ユーザへの紹介 子プロセスを起動する Process#system 、#spawn 、open3.rb *2 あたりを使ったことがあるで

    『API デザインケーススタディ』の紹介 - まめめも
    tsucchi1022
    tsucchi1022 2015/12/15
    この本おもしろそう
  • The 21st IOCCC: PiE in the sky award のエントリ - まめめも

    ref: http://www.ioccc.org/2012/endoh2/endoh2.c ref: http://www.ioccc.org/2012/endoh2/hint.html #include<stdio.h> /******** SpigotQuine -- usage: ./spigot [pi or e] ********/ char*s="G1%%xJ{;Q7wunmuGuu%%uu#include<stdio.h>/*Spigot_Quine*/#include<stdli" "b.h>/*_IOCCC2012_*/int*e," "i,j,k,n" ";char*q" ",*a,*d,*z,*p=%s%c;" "int" "%cmain(){a=calloc(" "1,1e4+n*2);;for(*" "a=\0@3,z=d=a+n+1,j=n*8-7;" "k=

    The 21st IOCCC: PiE in the sky award のエントリ - まめめも
    tsucchi1022
    tsucchi1022 2012/10/18
    これすごいなー
  • コードカバレッジ 100 % の難しさ - まめめも

    マイクロソフトの面接試験とかいう噂の問題。のバリエーション。 水槽に 100 匹の魚がいます。98 % はグッピーです。 では水槽にいる魚の 99 % をグッピーにするには、何匹のグッピーを水槽に足せばいいでしょう? 知らない人は一瞬だけ考えてみてください。 答えは「100 匹」です。直感より多いですよね? これは、コードカバレッジ 100 % の難しさに似ています。グッピーがテストされた行で、パーセントがその割合 (カバレッジ) だと考えてください。カバレッジが 98 % のプロジェクトがあれば、99 % にするにはおよそ倍の労力が必要なわけです。 自分でテストを書かない人は、したり顔で「C0 カバレッジは 100 % で当然 (キリッ)」などと言うのですが、世の中そんなに甘くないんですよね。 (一応ネタです)

    コードカバレッジ 100 % の難しさ - まめめも
  • SAT ソルバで数独を解く方法 - まめめも

    数独は非常に SAT に変換しやすい問題です。全部参考文献 *1 に載っている内容ですが、なるべくわかりやすく説明してみます。ちょっと長いです。 SAT とは まず SAT をごく簡単に説明します。すでに SAT を知っている人はここは読み飛ばしてください。 命題論理式の形の一つに乗法標準形のというのがあります。変数か変数の否定 (リテラルと言います) を or だけでつないだ式 (節と言います) を and だけでつないだ論理式のことを言います。つまり以下みたいな形です。 ( a1 or !a2 or ... or an) and ( b1 or !b2 or ... or !bn) and ... and (!z1 or z2 or ... or !zn)SAT は「a1 や zn などの変数にうまく true か false を代入して、上の式全体を true にできるか」という問題

    SAT ソルバで数独を解く方法 - まめめも
  • 1