原创 TCP協議以及套接字方面的總結(1)

最近寫了一個測試程序,對於TCP方面協議以及套接字接口方面的調用有了更進一步的認識。特此記錄下來。 對於監聽套接字,它會有一個監聽隊列。調用listen函數設置,衆所周知,TCP連接需要三次握手,握手成功後,會添加到這個隊列中,所以我們要

原创 引導扇區

看了于謙的書,一直想寫個操作系統玩玩。代碼寫了一部分。現在開始總結一下。啓動pc的時候,這個時候bios處於控制權。 它將第0個磁道第0個扇區加載到

原创 go語言學習(3)-協程

現在主流os調用粒度爲線程,產生時鐘中斷後,中斷處理函數,如果當前線程時間片使用完畢。則切換到其他的線程,資源開銷很大。還有創建和銷燬線程是和很消耗線程資源的。特別是對於我們後臺程序開發,爲了減少不必要的性能開銷,廣泛採用"池"進行維護。

原创 服務器壓力測試心得

最近完成了一個服務器框架, 於是測試的他的qps,發現了一個奇怪的問題,測試出來qps只有3w/s,與前面說的10w/s,有很大的差距。使用trace命令打印出glibc函數調用信息,發現了大部分的時間程序處於鎖等待狀態,我開始懷疑認爲是

原创 關於linux中消息隊列的使用

以前對於linux消息隊列有過大概的瞭解,在《uinx高級系統編程》這本書裏面提到過。但是具體使用不是很瞭解,最近再熟悉appserver和tws的框架,這裏面使用了linux的消息隊列,於是乎進行了系統的瞭解。消息隊列如下 int ms

原创 stl讀書筆記(1)-內存分配

現在主流使用的stl分爲很多版本,基本上尊重stl業界統一標準。我們使用的是sgi_stl。侯傑在《stl源碼剖析》這本書中說明stl的六大組件: 具體結構我不想細說,主要想說一下空間分配器(allocator)。這個是stl各個組件的

原创 讀書筆記(1)-前言

用了stl四五年了,但是一直感覺只是粗略的瞭解如何使用,對裏面細節問題不很瞭解,最近出了一個問題,於是乎有了瞭解stl源碼的想法,對於stl的源碼剖析首當其從推薦的是孫鑫的《stl源碼剖析》(雖然此書stl的版本已經很老了)但不失爲一個學

原创 go語言學習(2)-數據類型

最近在用go語言寫一個項目,好久沒有更新了,所以順便寫點東西,go語言中類型分爲基本類型和引用類型。基本類型這裏先不進行討論。說一下引用類型,go語言的引用類型有3種:切片,map,隧道。他們是都是引用對象,引用對象跟指針類似,但是隻能夠

原创 C++構造函數和析構函數能否繼承

前段時間,一個同事問了一個問題,C++類中的構造函數析構函數派生的子類能否繼承?這個問題以前真的沒有注意過,按道理來講應該說可以的,但是本着求證的態度寫了一段測試代碼: #include <map> #include <list> usi

原创 cmake命令

#編譯方法,進入 build 目錄 #[root@six build]# cmake ../;make #[root@six build]# ../bin/test2; ../bin/test1; cmake_minimum_requi

原创 stl讀書筆記(2)- 模板特例化

本來這個不屬於stl中的一個內容,但是我是stl中看到了這個。所以特此說出來,我不知道stl中在拷貝數據的時候,爲什麼要區分POD(plain old data)。我個人覺得應該是都可以的。 神馬叫做模板特例化,舉個簡單的例子: temp

原创 nginx使用記錄

以前認爲前端使用nginx一定能夠實現負載均衡,但是我進入了一個理解誤區。如果你的服務是屬於IO密集型的話,這個時候,這個時候如果你的後端部署多臺服務,通過前端nginx進行分配。這個時候是提高不了的tps的(一臺機器的網絡已經進入瓶頸了

原创 最近開發的心得1

最近進行項目開發,出現了幾個問題: 在調用mysql_ping()返回失敗,錯誤碼爲"2006,MySQL server has gone away",發現mysql超時斷開連接,但是mysql_ping()函數的作用就是重連mysql,

原创 關於linux中so鏈接a

這段由於工作需要,做成鏈接庫文件給別人調用,但是隻想提供一個so文件,於是實現在so文件中鏈接.a文件,寫了一個測試程序,編譯腳本如下: g++ -fPIC hello.cpp -c -o hello.o ar rcs libhell

原创 go語言學習道路1-學習前

確切的說從去年開始就知道go語言的存在,那個時候只是知道他這個名字的存在。具體感興趣是今年的8月份跟一個同事的交流。於是開始進行學習,go語言可以說就是針對服務器開發的語言(暫時還沒有看到google提供基於GUI開發方面的包,未來不排除