大約需要多少個時鐘週期才能在Linux上進行簡單的非阻塞系統調用?Unix系統調用開銷
我期望與OS X有什麼不同嗎?
我想知道諸如setsockopt
這樣的調用,它可能被用來提供一個可選提示來提高性能,但它有其自身的固有成本。
大約需要多少個時鐘週期才能在Linux上進行簡單的非阻塞系統調用?Unix系統調用開銷
我期望與OS X有什麼不同嗎?
我想知道諸如setsockopt
這樣的調用,它可能被用來提供一個可選提示來提高性能,但它有其自身的固有成本。
這實際上取決於系統調用和硬件。
製作系統調用的開銷不是很大! this給出小於1微秒(即,100個處理器時鐘週期)。一些系統調用正在使用vdso(7)來減少開銷。
但是,對於給定的系統調用,內核正在做一些工作。根據實際涉及的系統調用,這可能需要很長時間。
對於setsockopt(2)它應該取決於您正在設置的選項。一般來說,Linux套接字的實現是相當不錯的,並且大部分時間都花在實際網絡上(即以太網等)。
實際上,由於其混合內核體系結構,我預計Mac OS X的整理(可敬)是第二次。當然,假設它確實取決於特定系統調用的性質是正確的。 – mfro
請詳細解釋一下你想要做什麼'setsockopt'調用 –
@BasileStarynkevitch說,'SO_SNDLOWAT'。它應該只是設置一個內部變量並返回。 – Potatoswatter