修了一們課叫虛擬機器, 要做 project ,
老師有給一些template.
問題是 :
1 ) 我可以做些什麼( 增進效能 ? , 新的功能 ? )
2) 搞不好有人做過了?, 而 manual 通常沒寫, 需要 trace code
3) 我的方法會是OK 的嗎 ?
4) 要 trace 的 code 太大, 不容易找到核心的 module .
我覺得一開始很重要, 要做些什麼還要避免做人家做過的事情. 這可能需要蠻多時間
survey 的.
我要做的目前是加快 qemu 的 indirect branch.
基本上概念就是給他 cache 就對了, 因為 qemu 似乎沒有這個 cache.
我還看了 qemu 的 tiny code generator, 簡稱tcg, 加快tcg 也是一個議題. 但怎麼加快 ?
就用一些 optimization 吧 ? 但哪些 optimization 呢 ? 好多問號阿..
上面都是老師給的方向.
我自己本來是想要做dynamic binary instrumentation.例如 valgrind, dynamorio, pin
我選擇 valgrind, 但是 valgrind 沒有完整的 manual, 需要 trace code 呀 ~~
看別人寫的code , 思維跟他不一樣就不知道他在寫啥了.
後來就不弄dbi 了.
我覺得 virtual machine 的 project ,其實不管做啥就是要提升 performance
吧!, 這跟 code optimization, cache 使用 都有很大的關係,
再者, 老師提了static/dynamic optimization, 說現在有開始朝 dynamic optimization.
我認為大概是做 profile guided optimization. ( 我 compiler 還很弱 )
現在就 focus 在 indirect branch. 上, 不然一直 survey 下去也不是辦法.
