莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          hack,hacker

          Posted on 2007-10-15 09:09 dennis 閱讀(686) 評論(0)  編輯  收藏 所屬分類: 涂鴉linux & C
              hack有水平高低之分,最近看到一個blog,牛人的hack水平讓你不得不服。情況是這樣的,牛人在使用 mongrel_light_cluster的過程中,發現這個cluster違反了copy-on-write的語義,導致占用了太多的內存。根本原因在于Ruby的GC機制是marks all memory pages as dirty。為了減少內存的占用,讓集群跑更多mongrel,牛人走上了hack之路,給c ruby打補丁,他也真的做到了。c ruby的GC使用的是mark and sweep(標記并清除)的垃圾收集算法,他發現在mark過程中使用了st_table,這個數據結構占用了很大的內存,那么就改用Google’s sparse_hash。然后他又寫了一個memory pool,以應對marking和sweep使用過程中對malloc和free調用帶來的內存損失,因為在x86 GNU/linux gcc上,malloc函數如果申請的內存小于76KB,那么當free的時候這些內存不會被返還給操作系統。他的hack之路還沒結束,有興趣的關注他的blog:

           http://izumi.plan99.net/blog/index.php/


          主站蜘蛛池模板: 商丘市| 白河县| 夏邑县| 临沧市| 盐边县| 吉木萨尔县| 聂荣县| 佛学| 杂多县| 梅河口市| 南岸区| 息烽县| 聂荣县| 长宁县| 广西| 西吉县| 清涧县| 华池县| 黔江区| 丰城市| 平遥县| 吐鲁番市| 凤翔县| 中牟县| 克山县| 谢通门县| 花垣县| 星座| 永泰县| 古浪县| 高邮市| 安宁市| 寻甸| 尤溪县| 罗田县| 陈巴尔虎旗| 犍为县| 特克斯县| 红桥区| 台湾省| 衡水市|