我在我的應用程序中使用timer_create函數來定時器功能。 發生超時時,會創建一個新線程。那時候我的應用程序的內存使用量增加了大約11mb。我也將線程屬性設置爲PTHREAD_CREATE_DETACHED。任何幫助表示讚賞。我也想知道在超時時創建的線程還活着多久?posix timer_create()函數導致linux上的內存泄漏
0
A
回答
0
這個問題沒有代碼沒有意義。
timer_create不會自行創建線程。你的代碼必須是製作線程。
您的內存泄漏幾乎肯定是由代碼中的錯誤引起的。由於我們看不到您的代碼,因此我們無法幫助解決問題。
+2
不幸的是,POSIX計時器*做*在計時器到期時創建線程,如果你使用'SIGEV_THREAD'事件通知機制。這是一個稍微瘋狂的API。 – caf 2010-11-24 00:37:59
1
Valgrind是在Linux環境
0
,直到退出它的線程函數任何線程保持「積極」發現內存泄漏的寶貴工具。你的泄漏很可能是線程的堆棧 - 直到你調用thread_join或者其他東西之後纔會消失。
1
我懷疑它和你的計時器有什麼關係。
如果您創建一個新線程,該線程需要堆棧空間。據我所知,這個內存在線程創建時被分配一次,因爲它必須是連續的。
這可能聽起來像很多浪費的內存,但事實並非如此。首先,如果需要,可以降低堆棧大小,其次:只分配進程內的地址空間。物理內存只有在使用堆棧時纔會被分配。
0
太少信息給出,但也許幫助:
Periodic Timer Overrun and Resource Allocation
相關問題
- 1. 關於timer_create(內存泄漏)
- 2. 由於映射函數導致的內存泄漏泄漏
- 3. SiftDescriptorExtractor導致內存泄漏
- 4. vtkWindowToImageFilter導致內存泄漏?
- 5. SKEmitterNode導致內存泄漏
- 6. SmtpClient.Send導致內存泄漏
- 7. pushViewController導致內存泄漏
- 8. CALayer導致內存泄漏?
- 9. SoundPlayer導致內存泄漏?
- 10. glTexImage2D導致內存泄漏
- 11. setTimeout導致內存泄漏
- 12. Dispatcher.beginInvoke導致內存泄漏
- 13. AVAudioPlayer導致內存泄漏
- 14. strdup()導致內存泄漏?
- 15. IntPtr導致內存泄漏?
- 16. NSRunAlertPanel導致內存泄漏
- 17. uipickerview導致內存泄漏
- 18. URL.createObjectURL導致內存泄漏
- 19. net.sourceforge.jtds.jdbc.cache.SimpleLRUCache導致內存泄漏
- 20. AdView導致內存泄漏
- 21. performSelectorInBackground在iPhone上導致內存泄漏
- 22. POSIX timer_create()在Linux上的問題
- 23. Tomcat的ThreadWithAttributes導致內存泄漏
- 24. 導致內存泄漏的jQuery代碼
- 25. 的EditText addTextChangedListener導致內存泄漏
- 26. Objective-C的ADDOBJECT導致內存泄漏
- 27. 由於CTFontRef導致的內存泄漏
- 28. 的UITableViewCell重載導致內存泄漏
- 29. 的UIImage導致內存泄漏
- 30. 的UITableView - moveRowAtIndexPath導致內存泄漏
代碼比語言更響亮 – 2010-11-09 15:44:17