原创 C++11 lambda函數

用過腳本語言的童鞋都知道,函數的定義可以在任何地方,例如: local function table_sort(t) local function sort_by_len(t1, t2) return #t1 <

原创 最簡makefile教程(二)

上篇講解了makefile的基礎知識,這篇介紹點更有意思的,能夠大幅度提高編寫編譯指令效率的方法。 有這樣一個需求,先將文件下的所有c文件編譯,然後鏈接成可執行文件。 你不會要我寫如下的代碼吧: app: a.o b.o c.o ...

原创 最簡makefile教程(一)

一直對makefile文件一知半解,今天好好研究了一下他的用法。 研究過後,發現其實makefile語法很簡單,核心思想就是執行對應的指令而已,爲了敘述方便先從最簡單的指令講起。例如: A : cmd a B : C D

原创 從文件 I/O 看 Linux 的虛擬文件系統

原文鏈接:https://www.ibm.com/developerworks/cn/linux/l-cn-vfs/index.html 1 引言 Linux 中允許衆多不同的文件系統共存,如

原创 資料速查

一 工具類: 1  在線編譯 https://c.runoob.com 2  git操作 1) 分支對比 https://blog.csdn.net/u011240877/article/details/52586664 2)  合併指定

原创 用web展示skynet服務詳情

之前看到有羣友用web來展示skynet服務的詳細信息,其實原理很簡單,利用skynet自身提供的調試接口即可。最近又在練手寫一個web服務器,正好順道一起實現了。當然目前我這個web器還不能充當一個強大得出web後臺,正好我學了點fla

原创 自己寫http服務器

爲了從性能和易用性上測試我寫的mu_event的效果,想寫一個網絡應用來驗證一下,正好我的下一個目標是http服務器,所以我決定動手寫一個小型的http服務器。 其實開源的http服務器有很多,但是出名的都是比較重量級的,不利於學習。所以

原创 詳解Docker掛載本地目錄及實現文件共享

docker掛載本地目錄的方法總結 Docker容器啓動的時候,如果要掛載宿主機的一個目錄,可以用-v參數指定。 譬如我要啓動一個centos容器,宿主機的/test目錄掛載到容器的/soft目錄,可通過以下方式指定: # docker

原创 skynet.newservice的實現簡析

使用過skynet的童鞋都知道,一般新啓動一個服務是調用skynet.newservice函數,至於他的實現相信沒有多少人會去看,這篇文章會講明白爲什麼skynet.newservice要這麼實現。 剛開始的時候,我以爲sky.newse

原创 skynet 簡單的消息執行流程情景分析

skynet.lua對比以前優化了一些函數,尤其是對協程的控制,使得消息的處理流程更加清晰。我們現在來一步步剖析這個消息執行流程,加深對skynet reactor模式的理解以及協程的應用。 首先看服務的第一條消息是怎麼產生,又是如何被處

原创 skynet答疑一 --skynet.start參數爲什麼要在定時器中執行

有人在羣裏問到爲什麼skynet.start函數的參數爲要在一個定時器中執行,不能直接執行嗎?skynet.start函數如下: function skynet.start(start_func) c.callback(skyn

原创 自己寫一個網絡庫的心得

總是在看網絡相關的代碼,還沒有完整的實現過一個網絡庫。南宋大詩人陸游有云,紙上得來終覺淺,絕知此事要躬行。哈哈這也是我們高中的校訓之一。這兩週抽了點時間實現了一個小型的網絡庫,深度參考了muduo,只不過我是用C語言實現的,名字就叫mue

原创 skynet socket.lua 讀寫緩衝區剖析

這兩天剖析了一下socket.lua,整體不是很難,主要是數據緩衝區的實現需要好好分析一下。 這裏讀寫數據也是用到了緩衝池的思想,爲了更加直觀的說明代碼,還有方便測試,我去掉lua代碼,把核心接口直接用C++實現了一遍: #includ

原创 lua面向對象生成實例的正確方式

寫lua這麼久了,也知道怎麼樣用lua來實現所謂的面向對象。下面這段代碼是我常用來new一個新實例對象的: local Object = {a = 123} function Object:new (data) local

原创 lua代碼優化

前幾天寫代碼lua時,由於涉及到大量的數值邏輯計算,所以性能至關重要。經過一番研究和調試,總結了如下提高lua代碼執行效率的方法: 使用緩存 這個不論是在lua,在任何語言的程序中都適用,腳本語言顯得尤爲突出。使用緩存來優化,提高程序性能