2009-11-26 26 views
0

是否有可能強制ruby腳本最多使用一定數量的CPU和內存。可能強制,腳本使用一定數量的CPU和內存?

我不希望腳本在超過此指定量時被殺死。我只是想讓它在給定的限制內運行。

編輯:

是它的無限遞歸循環,似乎使用大量的CPU。

我注意到,在每次遞歸到底在幹什麼return是導致此。在我刪除它之後,這個高CPU使用率消失了。還有什麼我可以用來終止循環?出口 ?

+0

你的實際約束是什麼?是否還有其他任務將運行並爭奪資源?他們的要求是什麼? – Novelocrat 2009-11-26 05:24:54

+0

CPU使用率達到100%,腳本崩潰。 – ncvncvn 2009-11-26 05:25:41

+1

CPU使用率不會導致腳本崩潰。這聽起來像問題實際上是與您的腳本;既然你說它是遞歸的,我會說你可能會溢出堆棧。腳本崩潰時是否有錯誤信息? – Kieron 2009-11-26 05:41:36

回答

2

是,要求在大多數編程系統休眠功能(包括紅寶石)將導致程序等待的時間量,使用幾乎沒有CPU供電。

或者,你可以在一個較低的優先級運行程序(在* nix系統,這是漂亮或renice只能完成)。

0

這真的取決於你在腳本中做了什麼。如果它是某種無限循環,那麼你只是在「休眠」你的腳本,並且可以減少處理時間。

總之,「睡覺」並不是一個特別乾淨或適當的解決方案。如果您準確地發佈了腳本的具體內容,通常會提供更合理的解決方案,這將有所幫助。

1

睡眠會睡眠當前線程一段時間。你的CPU負載下降,因爲你的程序當時沒有做任何事情。內核應該確保你的CPU有足夠的時間運行所有的程序。

0

你應該幾乎從不需要這樣做。你爲什麼會浪費那段時間無所事事? CPU處於高利用率沒有任何問題;它不需要休息。如果有多個進程在運行,那麼操作系統將處理它們之間的CPU時間劃分。

相關問題