原创 linux下c++多線程下統計程序運行時間(非常注意)

linux下c++多線程下統計程序運行時間(非常注意) 查看一下clock()函數的功能: 這個函數返回從“開啓這個程序進程”到“程序中調用C++ clock()函數”時之間的CPU時鐘計時單元(clock tick)數當程序單線程或者單

原创 C++內存池的實現實例

C++內存池的實現實例 本節分析在某個大型應用程序實際應用到的一個內存池實現,並詳細講解其使用方法與工作原理。這是一個應用於單線程環境且分配單元大小固定的內存池,一般用來爲執行時會動態頻繁地創建且可能會被多次創建的類對象或者結構體分配內存

原创 C語言字符串函數大全

C語言字符串函數大全 函數名: stpcpy 功 能: 拷貝一個字符串到另一個 用 法: char *stpcpy(char *destin, char *source); 程序例: 參考:  一個簡單問題的並行算法 參考:  QQ架

原创 關於char字符移位問題

關於char字符移位問題 結果是255, 0XFF!unbelievable!,爲什麼呢,我作一點猜想,可能是由於編譯器自身的考慮,char字符在移位的時間先將char 轉換成整數,自然0x80轉換成整數肯定是一個負數,所以在32位整數中

原创 QQ架構的討論(整理)

QQ架構的討論(整理) 轉貼:QQ的架構問題 -----------sodme 大寶 hi, all: 我把第一個問題選爲:QQ的架構。呵呵,題目是不是有點大?QQ現在的最高在線用戶數是1900萬,我們來討論一下要作一個這樣的架構如何來作

原创 cpp程序性能優化

cpp程序性能優化 重中之重 - 算法優化: 程序性能優化最顯著的優化方法是算法上的優化,算法的優化對性能的提升往往是一個數量級的,例如排序,冒泡的時間複雜度爲O(N^2),而快速排序的時間複雜度爲O(Nlog(N)),這種性能的提供是非

原创 Makefile 編譯動態鏈接庫和靜態鏈接庫

有一點切記,使用tab而不是空格,有可能在vi下面編輯的時候,vi將tab給辦的成空格了,纔會出現: *** missing separator.  Stop. 在vi中設置不將tab轉換成空格  "set expandtab   //將

原创 QQ通信協議

QQ通信協議 不管UDP還是TCP,最終登陸成功之後,QQ都會有一個TCP連接來保持在線狀態。這個TCP連接的遠程端口一般是80,採用UDP方式登陸的時候,端口是8000。因此,假如你所在的網絡開放了80端口(80端口是最常用端口。。就是

原创 效率極低人羣之七大習慣

效率極低人羣之七大習慣 就像尋找對你有益的習慣一樣,尋找妨礙你的習慣同樣重要。這7種習慣中大多數都可能會輕易成爲你日常生活的一部分,使你難以察覺它的存在(或者它如何影響到你)。我曾經略微嘗試了這些習慣,結果毫無疑問,那些重要的事情沒有幾個

原创 布隆過濾器在網頁去重中的應用

布隆過濾器在網頁去重中的應用 假設你想從網上(新浪新聞)去下載一批網頁,做信息檢索(搜索引擎)的第一步.你已經從網上下載下來了一批網頁,並且有這批網頁的URL,不過你還有一批需要下載的網頁的URL, 問題是這樣的,如果有些URL已經被下載

原创 矩陣乘法的並行算法

矩陣乘法的並行算法 設兩個矩陣A和B,大小分別爲M * N 和 N * P, 如果C = A * B, 則C的大小爲M * P。 矩陣算法的算法表示,僞代碼如下: for (i = 0; i < M; ++i){ for (j = 0;

原创 多線程僞共享(false sharing)問題分析

多線程僞共享(false sharing)問題分析 在多核的CPU架構中,每一個核心core都會有自己的緩存空間,因此如果一個變量如果同時存在不同的核心緩存空間時,就會出現僞共享(false sharing)的問題。 此時如果一個核心修改

原创 判斷是否爲歐拉圖的並行算法

判斷是否爲歐拉圖的並行算法 歐拉圖: 一個圖爲歐拉圖,當且公當有一條迴路經過圖的每一條邊且恰好經過一次。 歐拉定理表明:一個圖爲歐拉圖,當且僅當不含有奇度數的頂。 假設圖G大小爲M * N和鄰接矩陣A。 判斷一個圖是否爲歐拉圖,很容易在O

原创 cpp不區分大小寫比較字符串string

cpp不區分大小寫比較字符串string int StrCaseCmp(const string & stra , const string & strb) { int aLen = stra.length(); int bLen = s

原创 一個簡單問題的並行算法

一個簡單問題的並行算法 設一個數列S[N], 其中S[0] = 0; S[k] = S[k - 1] + k ( 1 對於這個問題的求解串行算法相當簡單,O(N)時間複雜度,不再解釋。 並行: 假設有 M 個線程, 其中 M S[K] =