亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 17230 | 回復(fù): 14
打印 上一主題 下一主題

[其他] 請(qǐng)問(wèn)erlang的輕量級(jí)進(jìn)程是如何實(shí)現(xiàn)的 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-09-06 00:39 |只看該作者 |倒序?yàn)g覽
5可用積分
erlang的運(yùn)行時(shí)是用c實(shí)現(xiàn)的吧
它的進(jìn)程應(yīng)該也是用c實(shí)現(xiàn)的
為什么用c+系統(tǒng)接口模擬出來(lái)的進(jìn)程卻要比native進(jìn)程還牛逼呢?
我是函數(shù)編程以及腳本語(yǔ)言的菜鳥(niǎo)
還想問(wèn)大拿們一個(gè)問(wèn)題
這些語(yǔ)言的系統(tǒng)庫(kù)到底是如何實(shí)現(xiàn)的呢? 比如erlang的gen_tcp
它是如何調(diào)用到平臺(tái)的socket功能的?
是不是直接通過(guò)運(yùn)行時(shí)(虛擬機(jī))直接映射語(yǔ)言調(diào)用實(shí)現(xiàn)的呢?
比如編譯器看到一個(gè)erlang的connect調(diào)用 它便生成connect(socketfd,...)類似的native代碼呢??
我昏了。。。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2008-09-07 23:51 |只看該作者
我也想了解,曾經(jīng)測(cè)試過(guò),用ab發(fā)起多線程HTTP連接,最多只能完成220req/s左右。
而用erlang的inets庫(kù)隨便寫了一個(gè)類似的客戶端,能支持到440~500req/s。
erlang是怎么做到的?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-09-16 13:06 |只看該作者
它是COP(面向并發(fā)的程序設(shè)計(jì)),所有的都是進(jìn)程,合理的負(fù)載均衡.
有動(dòng)態(tài)語(yǔ)言和FPL的雙重特點(diǎn).
所有這些都是由語(yǔ)言處理方法和實(shí)現(xiàn)策略決定的,可以通過(guò)分析處理流程體現(xiàn)出來(lái).
這些資料能在網(wǎng)上找到。

[ 本帖最后由 fuqiang_huang 于 2008-9-16 13:11 編輯 ]

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2008-09-16 14:36 |只看該作者
原帖由 fuqiang_huang 于 2008-9-16 13:06 發(fā)表
它是COP(面向并發(fā)的程序設(shè)計(jì)),所有的都是進(jìn)程,合理的負(fù)載均衡.
有動(dòng)態(tài)語(yǔ)言和FPL的雙重特點(diǎn).
所有這些都是由語(yǔ)言處理方法和實(shí)現(xiàn)策略決定的,可以通過(guò)分析處理流程體現(xiàn)出來(lái).
這些資料能在網(wǎng)上找到。


回答得不到位啊
我想問(wèn)的是erlang的進(jìn)程如何映射到erlang虛擬機(jī)實(shí)現(xiàn)的c代碼上 數(shù)據(jù)結(jié)構(gòu) 以及 算法

大拿們提供一些erlang源代碼分析方面的文章 和 經(jīng)驗(yàn)

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2008-09-16 14:53 |只看該作者
我不是大拿,hehe!!,共同學(xué)習(xí)與研究
你的問(wèn)題無(wú)法回答到位,太過(guò)于龐大,我只是給一個(gè)探究的方法,源碼分析是要有方法與技術(shù)支持的,不可能一步到位;
“我想問(wèn)的是erlang的進(jìn)程如何映射到erlang虛擬機(jī)實(shí)現(xiàn)的c代碼上”這種問(wèn)法不好理解,
進(jìn)程是什么?與操作系統(tǒng)中的進(jìn)程一樣嗎?(不一樣)
虛擬機(jī)起什么作用?要分析源碼才能了解它的實(shí)現(xiàn)方法?
我只是說(shuō)明了研究的思路。

[ 本帖最后由 fuqiang_huang 于 2008-9-16 15:13 編輯 ]

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2008-09-16 22:10 |只看該作者
Erlang的進(jìn)程不一定對(duì)應(yīng)系統(tǒng)進(jìn)程的
我對(duì)這個(gè)東西不了解,瞎猜的
現(xiàn)代系統(tǒng)普遍基于虛擬內(nèi)存和寫時(shí)拷貝
由于函數(shù)式語(yǔ)言獨(dú)特的變量觀念,他們并不一定需要使用C的malloc機(jī)制
這樣,fork的成本就會(huì)非常低,然后再mmap個(gè)共享內(nèi)存,通信也不是大問(wèn)題
另一方面,也可以做m:n的模型,跟線程一樣
因?yàn)閑rlang有自己的虛擬機(jī),這么就完全可以保證線程之間的地址空間不被錯(cuò)誤引用
具體方式,可能跟libc_r的方法接近

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-09-17 22:17 |只看該作者
原帖由 blizzard213 于 2008-9-6 00:39 發(fā)表
erlang的運(yùn)行時(shí)是用c實(shí)現(xiàn)的吧
它的進(jìn)程應(yīng)該也是用c實(shí)現(xiàn)的
為什么用c+系統(tǒng)接口模擬出來(lái)的進(jìn)程卻要比native進(jìn)程還牛逼呢?
我是函數(shù)編程以及腳本語(yǔ)言的菜鳥(niǎo)
還想問(wèn)大拿們一個(gè)問(wèn)題
這些語(yǔ)言的系統(tǒng)庫(kù)到底是如何 ...



在windows2000下加載了erlang解釋器(或虛擬機(jī)),他產(chǎn)生了一個(gè)進(jìn)程.八個(gè)線程(雙核的機(jī)器)
運(yùn)行如下代碼:

  1. -module(mprocess).
  2.      -export([run/0, say_string/2]).
  3.      say_string(What, 0) -> done;
  4.      say_string(What,Count) ->io:format("~p~n", [What]),
  5.      say_string(What, Count - 1).
  6.      run()->spawn(mprocess, say_string, [hello, 300000]),
  7.               spawn(mprocess, say_string, [goodbye, 300000]).
復(fù)制代碼


mprocess:run().

進(jìn)程數(shù)量并沒(méi)有增加,線程數(shù)量也沒(méi)增加.

說(shuō)明可能:
        1. spawn調(diào)用并不會(huì)產(chǎn)生windows操作系統(tǒng)級(jí)的進(jìn)程.
        2. erlang的多進(jìn)程"可能"是依賴windows操作系統(tǒng)的多線程為基礎(chǔ)的(實(shí)際上這點(diǎn)有于時(shí)間關(guān)系還不能明確確認(rèn)).
由于時(shí)間關(guān)系,沒(méi)能做仔細(xì)的分析,因此還不能確認(rèn). 等有時(shí)間時(shí)在進(jìn)一步確認(rèn)一下.
lz或其他大拿若有時(shí)間也可仔細(xì)測(cè)試分析一下,并能把結(jié)論跟大家交流一下最好.

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2008-09-18 02:05 |只看該作者
原帖由 system888net 于 2008-9-17 22:17 發(fā)表



在windows2000下加載了erlang解釋器(或虛擬機(jī)),他產(chǎn)生了一個(gè)進(jìn)程.八個(gè)線程(雙核的機(jī)器)
運(yùn)行如下代碼:

-module(mprocess).
     -export([run/0, say_string/2]).
     say_string(What, 0) -> don ...


恩 你的回答類型是我希望看到的
也和我的研究思路相同
謝謝 大家繼續(xù)交流

[ 本帖最后由 blizzard213 于 2008-9-18 02:06 編輯 ]

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2008-09-19 17:48 |只看該作者
erlang對(duì)進(jìn)程的定義重點(diǎn)是相互隔離,概念上和系統(tǒng)的進(jìn)程、線程完全無(wú)關(guān)。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2008-09-19 20:59 |只看該作者
原帖由 Magicloud 于 2008-9-19 17:48 發(fā)表
erlang對(duì)進(jìn)程的定義重點(diǎn)是相互隔離,概念上和系統(tǒng)的進(jìn)程、線程完全無(wú)關(guān)。

實(shí)現(xiàn)高并發(fā)難道可以完全不使用native進(jìn)程 線程接口?
把c玩成魔法也不可能吧
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP