原创 C++內存管理及內存問題的分析

  寫服務端的,內存是一個繞不過的問題,而用C++寫的,這個問題就顯得更嚴重。進程的內存持續上漲,有可能是正常的內存佔用,也有可能是內存碎片,而C++寫的,還有可能是內存泄漏,那就需要一些方法來檢測到底是哪些問題引起的。 1. 內存佔用 首

原创 lua使用自定義類型作key

  前端使用typescript,後端使用C++和lua,在討論後端下發的int64類型值如何處理時,我建議前端使用long.js,但前端說他需要用這個作key,而js沒法用自定義類型作key。我回了一句“js居然沒法用自定義類型作key,

原创 Qt Creator 修復The code model could not parse an include file

在Ubuntu20.04上使用Qt Creator(4.11.0)時,程序運行起來沒問題,但編輯器會提示頭文件找不到,界面上提示各種錯誤。我以爲是我的工程太過複雜,部分頭文件路徑設置錯誤,但是查了半天,沒有發現問題,google查了半天,也

原创 C++左值、右值、左值引用、右值引用與move語義

左值與右值   C++的值現在分爲很多種類型:lvalue、xvalue、glvalue、rvalue、prvalue,具體定義見:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/201

原创 ubuntu20.04與win7 UEFI + GPT雙啓動修復

  老筆記本,一直用的ubuntu14.04與win7雙系統。因爲怕折騰,一直沒有升級ubuntu,畢竟裏面有數年常用的數據、軟件,升級的話不折騰幾天是搞不定的。不過ubuntu14.04的支持基本到頭了,趁着ubuntu20.04 LTS

原创 修改ubuntu20.04個人文件夾爲英文

  ubuntu的個人目錄中的文件夾名是根據本地語言生成的。中文的話,就是桌面、圖片、文檔之類的。如果只是用鼠標點這點那來操作,那倒挺好。不過就目前而言,裝ubuntu的人,多數都還是會用命令行的,有時候還是要寫腳本的。在終端中輸入中文,首

原创 編譯luacheck Linux版

  最近在寫Visual Studio Code的Lua插件,需要把luacheck集成進去。但是luacheck默認只提供了win32版本,見https://github.com/mpeterv/luacheck/releases,但我的

原创 測試clang-format的格式化效果

  我自己寫的業餘框架已告一段落,主體功能已完成,剩下的就是優化。第一個要優化的,就是代碼格式。我一直是用編輯器寫代碼的,從之前的UltraEdit到notepad++到sublime text,再到現在的VS Code。由於代碼都是我一個

原创 debian設置limits.conf

  最近已經把自己的遊戲框架主要功能完成得差不多了,決定將自己的開發環境從debian7升級到debian9,不然太多第三方依賴都跟不上了。debian10剛出來,MongoDB還沒適配,所以暫不考慮。   我的主系統是ubuntu14.0

原创 lua table vs closure

  最近在重構自己寫的框架中的定時器模塊,需要把回調函數保存起來,大概如下: function timer_mgr:save_timer( this,callback ) return { this = this,callbac

原创 C++手動調用析構函數無效問題排查

  在學習C++的時候,都知道不要手動調用析構函數,也不要在構造函數、析構函數裏調用虛函數。工作這麼多年,這些冷門的知識極少用到,漸漸被繁雜的業務邏輯淹沒掉。   不過,最近項目裏出現了析構函數沒有被正確地調用,導致內存泄漏。代碼大概如下:

原创 C++ std::unordered_map使用std::string和char *作key對比

  最近在給自己的服務器框架加上統計信息,其中一項就是統計創建的對象數,以及當前還存在的對象數,那麼自然以對象名字作key。但寫着寫着,忽然糾結是用std::string還是const char *作key,哪個效率高些。由於這服務器框架業

原创 ubuntu下掛載物理分區到openmediavault4

  準備弄個NAS,但還沒想好直接買現成,還是自己組裝一臺,先在虛擬機上體驗下OpenMediaVault4和黑羣暉。主系統是ubuntu,但剛買的時候這筆記本是裝windows的,除了ubuntu的系統分區,視頻音樂什麼的都存在一個NTF

原创 C++重寫new和delete,比想像中困難

  關於C++內存管理這話題,永遠都不過時。在我剛出道的時候,就已經在考慮怎麼檢測內存泄漏(https://www.cnblogs.com/coding-my-life/p/3985164.html)。想用一份簡單的代碼,並且不太影響執行效

原创 利用pyinstaller將python腳本打包發佈

  之前寫了一個小工具,將excel配置錶轉換爲json、xml、lua等配置文件。最近在學習egret,正好需要轉換配置文件,剛好就用上了。然而當我想把工具拷到工作目錄時,就發愁了。之前我爲了方便擴展,把程序拆分得太細: xzc@xzc