2014-03-29 77 views
0

大約需要多少個時鐘週期才能在Linux上進行簡單的非阻塞系統調用?Unix系統調用開銷

我期望與OS X有什麼不同嗎?

我想知道諸如setsockopt這樣的調用,它可能被用來提供一個可選提示來提高性能,但它有其自身的固有成本。

+0

請詳細解釋一下你想要做什麼'setsockopt'調用 –

+0

@BasileStarynkevitch說,'SO_SNDLOWAT'。它應該只是設置一個內部變量並返回。 – Potatoswatter

回答

3

這實際上取決於系統調用和硬件。

製作系統調用的開銷不是很大! this給出小於1微秒(即,100個處理器時鐘週期)。一些系統調用正在使用vdso(7)來減少開銷。

但是,對於給定的系統調用,內核正在做一些工作。根據實際涉及的系統調用,這可能需要很長時間。

對於setsockopt(2)它應該取決於您正在設置的選項。一般來說,Linux套接字的實現是相當不錯的,並且大部分時間都花在實際網絡上(即以太網等)。

+0

實際上,由於其混合內核體系結構,我預計Mac OS X的整理(可敬)是第二次。當然,假設它確實取決於特定系統調用的性質是正確的。 – mfro