博客 / 列表

侯磊 - 【C/C++實用工具】內存相關問題排查工具---cppcheck與valgrind

C++中令人疑惑的內存問題 C++的內存問題時常令人十分困惑。總結起來C++的內存問題可以分為以下幾類 內存泄露 當程序員使用new(或malloc)關鍵字分配內存而忘記使用 delete (或free)函數或 delete[] 運算符釋放內存時,C++ 中就會發生內存泄漏。在 C++ 中使用錯誤的刪除運算符會發生內存泄漏最多的情況之一。delete 運算符應用於釋放單個分配的內存空

c++11 , 內存泄漏 , c++ , c

侯磊 - C++的移動構造函數和移動賦值運算符

什麼是移動構造 在 C++ 11 標準之前(C++ 98/03 標準中),如果想用其它對象初始化一個同類的新對象,只能藉助類中的複製(拷貝)構造函數。在C++11中,引入了右值引用,提供了左值轉右值的方法,避免了對象潛在的拷貝。而移動構造函數和移動賦值運算符也是通過右值的屬性來實現的。直觀的來講,移動構造就是將對象的狀態或者所有權從一個對象轉移到另一個對象。只是轉移,沒有內存的搬遷或者內存拷貝所以

性能優化 , c++11 , 構造函數 , c++

侯磊 - 【golang】go語言中map導致的內存泄漏問題

go語言的map回收機制 在 Golang 中的 map 結構,在刪除鍵值對的時候,並不會真正的刪除,只是標記當前的key狀態為empty。我們下面的程序作為例子,看看當我們在刪除map中鍵值對時的內存變化,並瞭解如才能真正實現對鍵值對的垃圾回收。 程序基本流程為:在initMap()中,向map結構中插入10000對鍵值對,然後在全部刪除,通過runtime.MemStats打印內存使用情況。

內存泄漏 , 垃圾回收 , go