當我使用MSYS編譯東西時,./configure
步驟可超過make
需要更長的時間。但是,Linux中的相同過程具有快速配置和緩慢構建。這只是MSYS中的一些設置讓我的系統陷入困境?有沒有人有辦法解決嗎?爲什麼配置在MSYS中如此之慢?
14
A
回答
21
典型configure
腳本做一個很多開始小的子進程。在類Unix的操作系統,這與fork()
和exec()
函數調用,它具有需要被保留非常特殊的語義進行(例如,寫入時複製分叉後共享內存)。在Windows上,使用CreateProcess()
創建子進程,它具有非常不同的語義(例如,與父級完全分開的內存空間)。爲了正確執行類Unix腳本和程序,MSYS需要做大量的仿真工作,以便在Windows上創建新的進程,如在Unix上運行fork()/exec()
。這最終會比本地提供這些函數調用的操作系統慢。
0
您可能還需要關閉所有正在運行的病毒掃描程序。他們將在每次加載時重新掃描可執行文件,這絕對會導致腳本性能下降。
即使你沒有反病毒運行後,不要忘了Windows Defender的。 (您可能還需要禁用用戶帳戶控制,雖然我不知道對程序加載時間產生怎樣的影響。)
0
大量的磁盤訪問涉及,這恕我直言會減慢速度了很多。 例如,configure會創建臨時源代碼作爲其執行的測試的一部分進行編譯。這將創建一個必須再次被刪除的對象文件。 我所做的加速配置是提取我想要在RAM驅動器上構建的源代碼,並在其中進行配置和編譯。 我推薦使用免費的ImDisk(http://www.ltr-data.se/opencode.html/#ImDisk)。
相關問題
- 1. 爲什麼瀑布如此之慢?
- 2. Clojure:爲什麼年齡如此之慢?
- 3. 爲什麼videoview如此之慢?
- 4. 爲什麼AWS S3如此之慢? (Swift)
- 5. 爲什麼AWS SQS如此之慢?
- 6. 爲什麼Apache Beam中的GroupByKey之後的FlatMap如此之慢?
- 7. 爲什麼time.sleep()在Windows中如此之慢?
- 8. 爲什麼在ORMLite中DAO方法如此之慢?
- 9. 爲什麼此Sybase IQ更新聲明如此之慢?
- 10. MySql:爲什麼此查詢運行速度如此之慢?
- 11. 爲什麼virtualbox在docker下運行得如此之慢?
- 12. 爲什麼PyPy翻譯如此緩慢?
- 13. 爲什麼Selenium RC如此緩慢?
- 14. 爲什麼我的NSURLConnection如此緩慢?
- 15. iphone核心數據 - 爲什麼核心數據如此之慢?
- 16. 爲什麼Android模擬器如此之慢?
- 17. 統一爲什麼WheelCollider的轉矩如此之慢?
- 18. 爲什麼我的網站加載時間如此之慢?
- 19. 想不通爲什麼MYSQL查詢是如此之慢
- 20. 爲什麼IE開發者工具如此之慢?
- 21. Neo4j:爲什麼allShortestPaths函數的性能如此之慢?
- 22. 爲什麼我的hgweb服務器如此之慢?
- 23. 爲什麼SQL Server上varbinary(max)的UPDATE語句如此之慢?
- 24. 爲什麼data.table在這個例子中如此緩慢R中
- 25. 爲什麼我的CSS3動畫的性能在Chrome中如此之慢?
- 26. 爲什麼Docker構建命令在Elastic Beanstalk中運行速度如此之慢?
- 27. 爲什麼jQuery UI Layout在Adobe AIR中運行速度如此之慢?
- 28. 爲什麼'tf.python_io.TFRecordWriter'在TensorFlow中如此緩慢和存儲 - 消耗?
- 29. 爲什麼此查詢運行緩慢?
- 30. 爲什麼結果集如此之大?
對於Window上的'CreateProcess'實際上並不是那麼糟糕。我認爲cygwin試圖在windows上模擬fork,這使得它非常慢。如果bash沒有使用fork(我猜測它使用了fork,但我沒有檢查)來啓動進程,那麼配置會運行得同樣快。在我試圖解決這個「問題」時,在我的i7盒子上,似乎cygwin每秒只能分叉幾次。一種測試fork速度的方法:while(true);做日期;完成| uniq -c – Pavel 2012-08-21 22:07:40
+1 Pavel .. uclinux具有相同的問題,它可以在沒有MMU的情況下運行,並且任何fork都使用非常慢的完整副本 – user1496062 2013-10-26 03:14:40