我一直在編寫應用程序最近在c#中使用大量的內存或堆棧溢出,因爲以有趣的方式處理大量的數據。有更適合這種類型的語言嗎?我會從學習不同的語言(C++除外)中獲益嗎?堆棧溢出/內存不足
0
A
回答
10
C#不是問題。您可能需要重新考慮處理內存和數據的「有趣方式」。在這裏提供具體的場景和問題,以獲得您可能在您的應用程序中使用的潛在問題方法和策略的具體答案和替代方案。
1
如果您正在處理大型數據集並進行功能操作,您可以考慮查看F#或Haskell等函數式語言。
不會像遞歸問題那樣容易受到影響。
但是這些語言不會取代良好的設計和注意你如何做你的操作。有可能C#完全適合您的問題,您可能只需重構如何處理問題空間。
1
2
如果在32位系統上運行.Net會在您消耗〜800mb時開始向您提供內存不足異常。這是因爲它需要分配連續的內存塊。如果您有一個需要擴展的數組或列表,它會將舊內容複製到一個新的內容,從而同時分配兩個實例。
如果你可以運行64位,那麼你會在大於2GB及以上的任何內容上遇到異常,這些都取決於你的應用程序的工作方式以及還有哪些運行。
對於比你的物理內存大的數據,我會推薦內存映射文件,或者做一些磁盤/內存交換。
相關問題
- 1. 足夠堆棧溢出?
- 2. 堆棧溢出堆棧溢出
- 3. 堆棧溢出
- 4. 堆內存溢出
- 5. 關於堆溢出或堆棧溢出的Linux內核行爲
- 6. 堆棧溢出C++
- 7. C#堆棧溢出
- 8. Malloc堆棧溢出
- 9. 堆棧溢出C++
- 10. LINQ2SQL堆棧溢出
- 11. 堆棧溢出ToArray()
- 12. C++堆棧溢出
- 13. 堆棧溢出:: regex_replace
- 14. .NET堆棧溢出?
- 15. MPMoviePlayerController堆棧溢出
- 16. ViewDragHelper堆棧溢出
- 17. Lua堆棧溢出
- 18. GinMapProvider堆棧溢出
- 19. Threading.Timer堆棧溢出
- 20. 堆棧溢出調用堆棧#timememoryfunctionlocation 10.0000143728
- 21. 堆棧搜索導致堆棧溢出
- 22. MySQL內存溢出java堆溢出
- 23. 調試閃存堆棧溢出
- 24. 保存堆棧溢出帖子
- 25. 堆內存溢出異常
- 26. java.util.Properties.getProperty的堆棧溢出
- 27. freertos中的堆棧溢出
- 28. OpenID像堆棧溢出
- 29. 堆棧溢出(關於「evhttp_uri_parse」)
- 30. 堆棧緩衝區溢出