原创 C++和雙重檢查鎖定模式(DCLP)的風險

多線程其實就是指兩個任務一前一後或者同時發生。 1 簡介 當你在網上搜索設計模式的相關資料時,你一定會找到最常被提及的一個模式:單例模式(Singleton)。然而,當你嘗試在項目中使用單例模式時,一定會遇到一個很重要的限制:

原创 一個 Linux 上分析死鎖的簡單方法

簡介        死鎖 (deallocks): 是指兩個或兩個以上的進程(線程)在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的

原创 兩個有序數組的中位數

[LeetCode] Median of Two Sorted Arrays 兩個有序數組的中位數   There are two sorted arrays nums1 and nums2 of size m and n r

原创 QUIC和TCP--爲什麼多線程下載比單線程快

作者:henrystark [email protected] Blog: http://henrystark.blog.chinaunix.net/ 日期:20140626 本文遵循CC協議:署名-非商業性使用-禁止演繹 2.5(h

原创 Linux下 /proc/maps 文件分析

/proc/<PID>/maps查看進程的虛擬地址空間是如何使用的。該文件有6列,分別爲:地址:庫在進程裏地址範圍權限:虛擬內存的權限,r=讀,w=寫,x=,s=共享,p=私有;偏移量:庫在進程裏地址範圍設備:映像文件的主設備號和次設備號

原创 Linux進程內存分析和內存泄漏定位

在Linux產品開發過程中,通常需要注意系統內存使用量,和評估單一進程的內存使用情況,便於我們選取合適的機器配置,來部署我們的產品。 linux本身提供了一些工具方便我們達成這些需求,查看進程實時資源top工具,更詳細的進程內存堆

原创 一種定位內存泄露的方法(Linux)

本文是《一種定位內存泄露的方法(Solaris)》對應的Linux版本,調試器使用gdb。主要介紹實例部分。其他請見《一種定位內存泄露的方法(Solaris)》。 實例: 模擬new失敗的程序: #include <stdexce

原创 循環有序數組中的二分查找 Search in a rotated sorted array

版權聲明: GNU General Public License. https://github.com/lucky521 二分查找是必須要掌握的技能,適用於有序的、順序的存儲結構。 1、可以用它來查找某一個數 2、可以用於

原创 linux 工具篇

記錄,學習使用 http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/index.html 點贊 收藏 分享 文章舉報 x

原创 如何使用strace+pstack利器分析程序性能

引言 有時我們需要對程序進行優化、減少程序響應時間。除了一段段地對代碼進行時間複雜度分析,我們還有更便捷的方法嗎? 若能直接找到影響程序運行時間的函數調用,再有針對地對相關函數進行代碼分析和優化,那相比漫無目的地看代碼,效率就高多了。

原创 Linux下定位內存泄漏-查看內存空間

轉載:http://blog.csdn.net/xiongli880612/article/details/49621345 查看程序內存空間兩種方法 一、查看/proc/{pid}/maps文件 #cat /proc/568/ma

原创 判斷一棵樹是否是二叉查找樹

轉載:http://blog.csdn.net/guoyuguang0/article/details/51018249 判斷一棵樹是否是二叉查找樹  利用該節點對應的最大值和最小值來判斷該節點是否符合二叉查找樹的性質。 pub

原创 linux 內存查看方法:meminfo\maps\smaps\status 文件解析

Linux 下面查看內存有多種渠道,比如通過命令 ps ,top,free 等,比如通過/proc系統,一般需要比較詳細和精確地知道整機內存/某個進程內存的使用情況,最好通過/proc 系統,下面介紹/proc系統下內存相關的幾個文件

原创 內存泄漏的問題如何解決(linux)

內存泄漏的問題,在百度是遇到最多的,阿里相對少點。與內存泄漏斗爭了很久,我總結下常用的一些有效測試方法吧。   1、valgrind,這是非常好用的工具,雖然參數很多,輸出結果較多,但是隻要認真看下,就很容易發現問題,報告是很詳細的,

原创 在一個int數組裏查找這樣的數,它大於等於左側所有數,小於等於右側所有數

題目的意思很簡單,比如說有數組[1,6,9,2,1,5,15,20],那麼滿足上述條件的元素爲1,15,20。 分析1. 暴力的方法就是從左到右進行遍歷,到達某個數字後,在從0開始遍歷到當前下標,找出最大的,再從當前下標遍歷到尾,找