Re: [問題] 為何少有人用c++寫網頁?

看板C_and_CPP作者 (Acquire higher)時間14年前 (2011/04/20 06:31), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串6/7 (看更多)

04/20 09:12,
copy-on-write 的問題是要支援 multi-thread 很難做
04/20 09:12

04/20 09:13,
就算做到了效能, 效能也會爛到沒有價值
04/20 09:13

04/20 09:13,
不過我也忘記我在哪邊看到的,不然就是在很多地方都有看到
04/20 09:13

04/20 11:29,
突然想到一件事,雖然看到人家這樣說,不過我其實不知道
04/20 11:29

04/20 11:30,
為什麼copy-on-write在 multi-thread 會很難做..
04/20 11:30
看到這個就想到 Lock free data structure 下面是兩篇 Alexandrescu 寫的介紹文章 http://erdani.com/publications/cuj-2004-10.pdf http://erdani.com/publications/cuj-2004-12.pdf 簡介 裡面有給出如何建立一個 concurrent accessiable map container 概念是每次要修改 shared data 就 copy (cache) 一分在私有區域 (copy on write) 然後改完之後利用 atomic compare_and_swap 把新資料 swap 過去 compare_and_swap 就是把目前資料跟你 cache 下來的那分資料 比一下看有沒有修改,沒有的話表示跟你 cache 下來到現在都沒人改過 可以放心地 swap ,不一樣的話就把新的東西 cache 下來再做一次修改 可想而知,每一次 compare 失敗就要砍掉重練會產生大量的複製 所以有人就用 802.11 裡面的 collision avoidence 概念作 random backoff 簡單說就是每次compare 失敗就等久一點再去 cache 再修改。 我自己做實驗是發現 CPU 的確吃飽飽,不過 throughput 跟用一般 read write lock 差不了多少。 另外,Bjarne Stroustrup 也有出一篇寫 lock free vector 的 http://www2.research.att.com/~bs/lock-free-vector.pdf 有跟前面兩篇文章作比較。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.27.199

04/20 14:43, , 1F
補充 compare_and_swap 的效能比 tbb 的實作品還要好 XD
04/20 14:43, 1F

04/20 15:44, , 2F
lock free 的優點就是不會 dead lock,並不是效能
04/20 15:44, 2F

04/20 15:45, , 3F
事實上效能通常會比較差. 比較過 lock 跟 interlockedxxx
04/20 15:45, 3F

04/20 15:45, , 4F
的效能就知道了,lock 其實也蠻快的了,所以重點不是效能
04/20 15:45, 4F
lock free 不會 dead lock 是沒錯,不過就我之前了解 dead lock 不是主要問題,starvation 才是 lock free 想解決的 下面這篇 Wait-free Synchronization 是 Maurice Herlihy 得獎的文章 http://portal.acm.org/citation.cfm?doid=114005.102808 給你參考看看。 ※ 編輯: adxis 來自: 114.47.75.72 (04/26 03:30)
文章代碼(AID): #1DhdswCz (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1DhdswCz (C_and_CPP)