原创 linux高性能服務器編程學習筆記一:TCP/IP協議詳解

1、TCP/IP協議族是一個四層協議系統,自底向上依次爲數據鏈路層、網絡層、傳輸層、應用層。 2、數據鏈路層常用的協議有ARP協議。網絡層常用的協議有ICMP協議和TP協議。傳輸層常用的協議有TCP協議和UDP協議。應用層常用的協議有pi

原创 Leetcode:minimum-depth-of-binary-tree

Leetcode:minimum-depth-of-binary-tree Given a binary tree, find its minimumdepth.The minimum depth is the number of nod

原创 levelDB之內存碎片和Arena

什麼是內存碎片? 在內存單元100的起始地址到內存單元200之間,一共申請了100塊1字節的區域,但是釋放的時候,先釋放了內存地址爲基數的單元,如釋放101、103…而偶數單元不釋放,釋放50次後,雖然還有50字節的內存是空餘的,但是如果

原创 彙編語言學習筆記二:訪問內存的寄存器

1、通過前一篇章的學習,知道CS和IP寄存器的內容合成的物理地址指向的是執行指令的地址。而訪問內存也需要知道內存的地址,內存地址也是由段地址和偏移地址組成,8086CPU中默認存放內存地址段地址的寄存器是DS寄存器,偏移地址則是由[n]表

原创 linux高性能服務器編程學習筆記四:HTTP協議相關格式

1、HTTP請求 GET http://www.baidu.com/index.htmlHTTP/1.0(請求行) User-Agent: Wget/1.12 (linux-gnu)(頭部字段) Host:www.baidu.com(頭

原创 linux高性能服務器編程學習筆記二:IP協議詳解

1、IP協議是TCP/IP協議族的核心協議。要理解IP協議應當從瞭解它的頭部信息開始。網絡層主要的作用是路由選址和轉發。選址當然選的是IP地址,所以

原创 linux高性能服務器編程學習筆記五:高級I/O函數

1、linux提供了一些高級I/O函數,在特定的情況下表現出優秀的性能。這些函數大致分爲3類 (1)用於創建文件描述符的函數,包括pipe、dup/dup2函數 (2)用於讀寫數據的函數,包括readv/writev、sendfile、m

原创 Leetcode: Max Points on a Line

Given n points on a 2D plane, find themaximum number of points that lie on the same straight line.(題意大概是找尋某一條直線,其上包含的點

原创 linux高性能服務器編程學習筆記七:高性能服務器程序框架

1、服務器一般可以解構爲以下三個主要模塊: (1)I/O處理單元。(四種I/O模型和兩種高效事件處理模式) (2)邏輯單元。(兩種高效併發方式以及高效的邏輯處理方式—有限狀態機) (3)存儲單元(服務器程序的可選模塊,其本身與網絡編程無關

原创 linux高性能服務器編程學習筆記六:linux服務器程序規範

除了網絡通信外,服務器程序通常還必須考慮許多其它細節問題。這些細節面廣而瑣碎,基本上都是模版式的,一般稱之爲服務器程序規範。例如: 1、linux服務器程序一般以後臺進程形式運行,後臺進程又稱爲守護進程(daemon)。它沒有控制終端,因

原创 彙編語言學習筆記一:CS和IP寄存器

1、CS是代碼段寄存器,IP是指令指針寄存器(相當於偏移地址)。修改CS、IP的指令不同於修改通用的寄存器值的指令,修改通用寄存器的值可以用mov 指令(mav ax,123),mov指令被稱爲傳送指令。修改CS、IP的指令是jmp指令。

原创 linux高性能服務器編程學習筆記三:TCP協議詳解

1、和IP協議相比,TCP協議處於傳輸層,更靠近應用層,因此在應用程序中具有更強的可操作性。 2、一般來說,TCP主要處理端到端的通信,因此頭部信息主要包括源端口號,目的端口號。TCP協議是面向連接、面向字節流和可靠傳輸的協議。因此頭部還

原创 python.cookbook讀書筆記之文本篇(一)

前言: 在一行的末尾使用反斜槓符號意味着下面一行仍是上面字符串的延續 Big = "This is a long string\ That prints two line." 使用一對連續的三引用符將字符串圈起: Bigger = "

原创 深入理解C++11讀書筆記(一)

C++11相對於C++98/03顯著增強的特點: 通過內存模型、線程、原子操作等來支持本地並行編程 通過統一初始化表達式、auto、declytype、移動語義來統一對泛型編程的支持 通過constexpr、POD(概念)等更好的支持系統

原创 LevelDB之LRUCaChe解析

背景: 之前學過操作系統的都應該知道LRU Cache算法,即最近最少使用算法。算法的緣由是Cache的容量有限,不可能無限制的去存儲數據,那麼在容量用完又需要添加新的數據時,就需要在原cache當中選擇一些數據清除掉,而我們選擇的數據就