2010-02-03 46 views
1

我有嘗試做當性能問題之前導入反應器模塊:性能問題時os.fork()

from twisted.internet import reactor 
#some codes here 
pid = os.fork() 
if not pid: 
    #some codes blahblahblah 
    reactor.run() 

這引起了非常低的表現,我沒有找到官方文檔有用的信息,我相信這是因爲我在os.fork()之前導入了reactor模塊,有什麼想法嗎?

+1

雖然我可以回答你可能不應該這樣做,但我很好奇你說的是什麼表現。如果你創建一個完整的,可運行的例子來證明你正在觀察的性能下降,那麼這會是一個更好的問題。就目前來看,任何答案都會是一個非常瘋狂的猜測,因爲沒有人知道你的程序做了什麼,也沒有人知道你測量的性能。 – 2010-02-03 03:54:07

+0

感謝您的建議,我會組織代碼並在以後發佈 現在的基本想法是我懷疑父母和孩子的過程是共享一些相同的fds和操作系統有一些鎖定。 對於父進程,它保存FD: 8 - >管:[280311] 9 - >管:[280311] 子進程,這是相同的: 8 - >管:[280311] 9 - >管:[280311] 我不知道什麼是用於管道的管道,可能是反應堆的Waker? – 2010-02-05 02:18:25

回答

0

你不能使用子進程而不是os.fork?

+0

我不想破壞或取代現有的代碼。對我而言,很難估計風險 – 2010-02-05 01:53:51