摘要:
把C++綁定到Lua腳本的方法很多。但是在C++11之前,都沒有太好的辦法。比如tolua++,這個工具需要手動編寫額外的pkg文件,每次需要手動執行命令生成額外的C++文件,使用比較繁瑣,所以逐漸沒落了。 而我自己用的是一個自己實現的綁定庫,只是這個綁定庫比較簡單,只能綁定int (*lua_CF
閱讀全文
posted @ 2025-10-07 17:10
coding my life
閱讀(23)
推薦(0)
摘要:
在C++多線程中,static變量是不安全的。如果不想每次都分配一塊內存,棧上又分配不了這么大的內存,那thread local是比較合適的選擇。于是我的模塊中是這么寫的: struct ThreadBuffer { ThreadBuffer() { buffer_ = new char[10240
閱讀全文
posted @ 2025-06-15 15:57
coding my life
閱讀(26)
推薦(0)
摘要:
最近忽然被問到一個問題:程序A打開了文件a.txt,程序B覆蓋了a.txt,那這時候程序A讀取到的內容是怎么樣的?是讀取到舊內容,還是新內容,或者是半新半舊? 為了解答這個問題,得先明白系統的文件管理機制。以Linux為例,文件屬于一種資源,它是由系統內核統一管理的。操作文件也只能是通過內核的系統調
閱讀全文
posted @ 2024-11-09 17:33
coding my life
閱讀(154)
推薦(0)
摘要:
最近在開發新項目,使用的是舊的代碼,因此要進行一些代碼的刪減和優化。在win下開發時,一切正常,但在Linux下,發現其中一個模塊在啟動時會偶發性無緣無故中止,沒有異常日志,沒有core dump,內核那邊也沒有異常,進程直接就消失了。 我以為是系統環境變量沒設置好,但使用命令ulimit -a查看
閱讀全文
posted @ 2023-04-12 20:42
coding my life
閱讀(209)
推薦(0)
摘要:
最近發現線上有個服務器某些邏輯耗時比較久,問了下同事,他告訴我是因為lua的pairs函數很慢導致的。 “啊!不至于吧,這數據量才多少”我一臉詫異,記憶中Lua不至于慢到這種程度,遍歷個幾十萬的table速度還是很快的,而我們線上的這個table數據量才幾萬。 他把線上的數據導了出來,做了一個測試,
閱讀全文
posted @ 2022-12-18 21:29
coding my life
閱讀(785)
推薦(0)
摘要:
在游戲服務器當中,通常都會為每個客戶端鏈接設置一個緩沖區。這樣做的理由是游戲中通常會有持續不斷,零碎的數據包發送到客戶端,使用一個緩沖區可以把這些數據包攢到一起發送,避免頻繁的io操作;另一個原因是,處理游戲邏輯的線程通常和io操作的線程是分開的,因此游戲邏輯線程把數據放到緩沖區后可以繼續處理后續的
閱讀全文
posted @ 2022-05-06 23:19
coding my life
閱讀(769)
推薦(0)
摘要:
#include <iostream> #include <chrono> #include <ctime> int main() { const int ts = 1000000; std::chrono::steady_clock::time_point beg; std::chrono::st
閱讀全文
posted @ 2022-04-23 16:09
coding my life
閱讀(2754)
推薦(0)
摘要:
一個已進入維護狀態多年的項目最近我做了一些優化,沒想到更新出去后程序直接起不來了,core dump的文件顯示程序因為Program terminated with signal 4, Illegal instruction.直接掛掉。第一次看到這個錯誤的我有點懵,從字面上理解“Illegal in
閱讀全文
posted @ 2022-04-16 16:29
coding my life
閱讀(2561)
推薦(0)
摘要:
我經常用虛擬機裝各種版本的Linux系統來跑程序,一般硬盤分得比較小。比如CentOS 6就只分了16G,跑的是服務端的程序,不用安裝界面,整個系統也就占3G不到,一般也夠用。直到某一天,我需要把一個20G的sql腳本導入到數據庫里。這才發覺自己從來沒做過Linux的硬盤擴容,一番鼓搗之后,做個筆記
閱讀全文
posted @ 2022-04-01 22:04
coding my life
閱讀(3157)
推薦(0)
摘要:
業務邏輯寫多了,有些基礎的東西就忘了,寫在這里僅僅是做個筆記。 最近要把自己的程序改成多線程,其中有一個緩沖區類,大概是這樣的: class Buffer { public: /** * 獲取當前緩沖區中已分配的chunk數量及總內存,用于統計 */ void get_mem_info(int& c
閱讀全文
posted @ 2022-03-20 17:39
coding my life
閱讀(1050)
推薦(1)