原创 棧,堆,全局,文字常量,代碼區總結

在C\C++中,通常可以把內存理解爲4個分區:棧、堆、全局/靜態存儲區和常量存儲區。下面我們分別簡單地介紹一下各自的特點。 一.   區域劃分 堆: 是大家共有的空間,分全局堆和局部堆。全局堆就是所有沒有分配的空間,局部堆就是用戶分配的空

原创 高性能網絡編程(七)--tcp連接的內存使用

當服務器的併發TCP連接數以十萬計時,我們就會對一個TCP連接在操作系統內核上消耗的內存多少感興趣。socket編程方法提供了SO_SNDBUF、SO_RCVBUF這樣的接口來設置連接的讀寫緩存,linux上還提供了以下系統級的配置來

原创 高性能網絡編程(六)----reactor反應堆與定時器管理

反應堆開發模型被絕大多數高性能服務器所選擇,上一篇所介紹的IO多路複用是它的實現基礎。定時觸發功能通常是服務器必備組件,反應堆模型往往還不得不將定時器的管理囊括在內。本篇將介紹反應堆模型的特點和用法。 首先我們要談談,網絡編程界爲什麼

原创 高性能網絡編程(三)----TCP消息的接收

這篇文章將試圖說明應用程序如何接收網絡上發送過來的TCP消息流,由於篇幅所限,暫時忽略ACK報文的回覆和接收窗口的滑動。 爲了快速掌握本文所要表達的思想,我們可以帶着以下問題閱讀: 1、應用程序調用read、recv等方法時,socke

原创 高性能網絡編程(四)--TCP連接的關閉

TCP連接的關閉有兩個方法close和shutdown,這篇文章將盡量精簡的說明它們分別做了些什麼。 爲方便閱讀,我們可以帶着以下5個問題來閱讀本文: 1、當socket被多進程或者多線程共享時,關閉連接時有何區別? 2、關連接時,若連

原创 Cleanup failed to process the following paths svn無法清理

究其原因大多數原因就是你在svn未完成任務的時候,你強行終止了任務,導致svn還有未完成的任務。解決方法簡單粗暴:1、下載sqlite3.exe,下載鏈接:https://pan.baidu.com/s/1i6sSjo5 密碼:k23b;

原创 正則表達式

最近看到字符串的匹配問題,這時候不得不用到正則表達式了,然後就簡單的瞭解下:   .        任意字符 %a        字母 %c        控制字符 %d        數字 %l        小寫字母 %p   

原创 高性能網絡編程(二)----TCP消息的發送

在上一篇中,我們已經建立好的TCP連接,對應着操作系統分配的1個套接字。操作TCP協議發送數據時,面對的是數據流。通常調用諸如send或者write方法來發送數據到另一臺主機,那麼,調用這樣的方法時,在操作系統內核中發生了什麼事情呢?我

原创 高性能網絡編程(五)----IO複用與併發編程

對於服務器的併發處理能力,我們需要的是:每一毫秒服務器都能及時處理這一毫秒內收到的數百個不同TCP連接上的報文,與此同時,可能服務器上還有數以十萬計的最近幾秒沒有收發任何報文的相對不活躍連接。同時處理多個並行發生事件的連接,簡稱爲併發;

原创 VS試用期到期後無法輸入密鑰

VS在試用期結束後,無法輸入密鑰 解決: 無法登陸!!!登陸的時候會提示 什麼 腳本錯誤的問題。通過一系列的百度,最終找到了解決方法: 首先在微軟官網,註冊賬號,登陸,再在此處登陸就不會有類似於腳本錯誤了,然後找一個能用的密鑰輸入後,

原创 error RC1015: cannot open include file 'afxres.h' 解決辦法

前幾天VS2013出了點問題,然後在控制面板中,將VS 修復了下,但是,修復之後,項目就無法編譯了,提示有一個頭文件找不到: error RC1015: cannot open include file 'afxres.h'  但是之前

原创 Lua獲取時間

local getTime = os.date(“%c”); 其中的%c可以是以下的一種:(注意大小寫) %a abbreviated weekday name (e.g., Wed) %A full weekday name

原创 高性能網絡編程(一)----accept建立連接

最近在部門內做了個高性能網絡編程的培訓,近日整理了下PPT,欲寫成一系列文章從應用角度談談它。 編寫服務器時,許多程序員習慣於使用高層次的組件、中間件(例如OO(面向對象)層層封裝過的開源組件),相比於服務器的運行效率而言,他們更關注

原创 lua中的元方法__index __newIndex

__index用於lua中table的查詢; __newindex用於lua中table的更新。當一個table中不存在的索引賦值時,解析器就會查找__newindex元方法。如果有這個元方法,解析器就會調用它,而不是進行賦值。如果這個元

原创 批量重命名

想把當前目錄下的文件:潛伏01.rmvb潛伏02.rmvb潛伏03.rmvb潛伏04.rmvb分別改名爲:潛伏1.rmvb潛伏2.rmvb潛伏3.rmvb潛伏4.rmvb方法:在當前目錄下新建兩個批處理文件:createsrc.bat和r