Mercurial > hg > Members > anatofuz > slides
comparison slides/2018/06/05/memo.txt @ 47:32e35be2ce71
auto-Update generated slides by script
author | Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 26 Jun 2018 22:41:26 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
46:8972d59ad904 | 47:32e35be2ce71 |
---|---|
1 MoarVMが実際にインタプリタとして走っているのはMVM_interp_runという関数らしい. | |
2 これはスレッド毎に用意されるらしい | |
3 | |
4 定義自体は `src/core/interp.c`に書かれている | |
5 | |
6 MVMInstancとかいう構造体に全ての情報が入っている | |
7 | |
8 MVM_cu_map_from_fileでスレッド情報とファイルから生成した結果をMVMCompUnit構造体として生成している | |
9 | |
10 DISPATCHでNEXT_OPを判断している,これはオペランドリストとswitch文が同じオーダーで書かれているので | |
11 最適化しやすいらしい | |
12 | |
13 MVM_interp_runの後DISPATCHというマクロでNEXT_OPというマクロに応じて処理を行っているが | |
14 これがMoarVMのバイトコードを一対一対応しているので5000行のcase文が生成されている | |
15 | |
16 --- | |
17 | |
18 - Ruby のJITはunreadableなので,とりあえずCbCで実装しても良いのでは | |
19 - ()の中にいるなどの情報 | |
20 - コンパイラをデーモン化してオブジェクトファイルなどを共通化 | |
21 - パースの並列化 | |
22 - パースに当てられる箇所 | |
23 - gccのパスは50個くらい,その内の1つがパーサーっぽい | |
24 | |
25 - FileIOを食う例題とFileIOを食わないでCPUを食う例題 | |
26 - HTMLジェネレーターとかでも良いのでは | |
27 | |
28 - Perl5 to Perl6的なのは無い? | |
29 - Rustのメモリ管理周り | |
30 | |
31 - Perl5との互換性? | |
32 - JIT | |
33 - MoarVM ByteCode | |
34 | |
35 - 実測する!!! | |
36 - Perl5からMoarVMに変換するスクリプトを作成する!? | |
37 - JIT | |
38 - 並列処理 | |
39 - パイプライン処理(コンパイラ) | |
40 - 前段の処理を止めないといけない | |
41 - 1つのコンパイラがCPUを異常に使うと帰って遅くなるのでは?? | |
42 - ローカルな作業を分割しても全体としては遅くなるのでは? | |
43 - JIT | |
44 | |
45 - アプリケーションをCbCで書く | |
46 - それが早くなるまでチューニングする | |
47 - 最初はコンパイルしちゃって良いのでは? | |
48 - いきなりCbCを吐く感じにする | |
49 - (いかに早い正規表現を書くか) | |
50 | |
51 - 作った文だけメモリをallocateして返却しない(linear memory) | |
52 - 一旦メモリを保存させて渡す(OBject table, OBlist) | |
53 - Copying GC conversation | |
54 - incrementalに出来ない為,中途半端にコピーされた状況になる可能性がある | |
55 - 1MBのファイルを読み込んで処理するレベルではGCがそんなに走らないので無視しても良いのでは…!? | |
56 - GC memory allocate |