原创 聯合編譯的神坑Error D8037

最近安裝一個專門用於編譯發佈的機器遇到的神坑問題記錄分享下,避免大家再繞進去。。。 首先問題描述:Win7上Incredibuild編譯時出現錯誤D8037:無法創建臨時 il 文件;清除臨時目錄中的舊 il 文件 (可疑點一)查了網上的

原创 性能-Windows內存中斷-頁面錯誤(page fault)

最近準備項目上線,做了大量的壓測工作,發現了在有些機器上會出現大量的頁面錯誤,這些錯誤會導致內存中斷。 然而實際的測試數據來看,分兩種情況,有大量中斷不影響性能和有大量中斷影響性能。 經過調查發現:大部分的文章中只提及的page faul

原创 VS2017+Win10內存泄露工具調研分享

最近剛升級到了VS2017進行項目開發,在準備做內存泄露調查的時候遇到了之前常使用的工具無法正常工作的問題,分享下 1、LeakDiag vesion:1.25.28.2201 會出現以下問題:     a.無法識別到要檢測的程序    

原创 C++11風格的vector循環小坑注意

C++11新引入了類似如下分隔的遍歷方式                   for(auto iter : vectorTemp)            使用的時候需要注意iter變量是否需要加上引用,不然可能導致程序執行的效果不符合自

原创 GO實現獲取本地IP地址(網卡IP地址的方法)

網絡上百度了下大致都是如下做法: addrs, err := net.InterfaceAddrs() if err != nil { return false } for _, address := range a

原创 意外,Openssl出現死循環的問題

  最近調研和研發關於c++支持ws和wss協議的網絡底層,意外發現了Openssl內部出現死循環的情況。網絡底層採用boost::asio和Openssl的方式支持wss協議。   平時使用都是正常,等到最近壓測的時候發現,一段時間後會

原创 boost::asio::ssl::stream線程安全問題

   利用boost+Openssl支持一些安全協議鏈接時,要特別注意多線程的安全性。    官方文檔明確指出了boost::asio::ssl::stream不是線程安全的需要保證其同一個對象不可多線程同時調用 Thread Safe

原创 lib中定義的靜態成員變量不一定唯一

  今天偶然間遇到一個BUG,我主工程和一個DLL工程同時使用了同一個lib中的靜態成員變量。調試過程中就發現靜態成員變量賦值後,到DLL中竟然沒有值。   後來發現原來主工程和DLL工程有各自生成了一個靜態成員變量,導致和預想的執行效果

原创 getpeername接口部分系統返回失敗,LastError=10014

今天遇到個問題,我的系統win7系統下使用getpeername接口獲取IP可以,但是我同事的win10卻不行,接口調用返回失敗,獲取的錯誤碼爲10014.網絡上找到一個相關的文章:https://blog.csdn.net/readyi

原创 【轉】服務端爲什麼需要心跳(保活)機制

  如果沒有特意的設置某些選項或者實現應用層心跳包,TCP空閒的時候是不會發送任何數據包。也就是說,當一個TCP的socket,客戶端與服務端誰也不發送數據,會一直保持着連接。這其中如果有一方異常掉線(例如死機、路由被破壞、防火牆切斷連接

原创 從清潔工到霸道總裁:真正有格局的人到底是什麼樣的?

原文地址:http://blog.sina.com.cn/s/blog_15f0658510102xh9u.html1閒暇之餘,我翻閱了一本風靡全球,讓人頂禮膜拜的商業奇才——喬幫主的個人傳記。一個從無到有,建立起商業帝國,推動世界進步的

原创 Raknet性能調研

(1)Raknet理論上可以支持多個客戶端和服務器之間每秒4W個消息的ping-pong測試。但是不穩定,如果某些原因導致消息堆積,則會嚴重影響發送和接受的響應時間,會達到秒級。 (2)Raknet如果消息超過承受的極限,底層的邏輯上導致

原创 運行庫不一致導致的問題(/MDd /MTd)

如果出現如下問題  error LNK2038: 檢測到“RuntimeLibrary”的不匹配項:  值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug” 1>LIBCMTD.lib(tzset.obj) :

原创 Raknet中拆包的坑

  Raknet自帶拆包功能,如若你傳入的buffer大於Raknet內部可接受的數據量,則會自動開啓拆包。拆包會有流量和性能的消耗,但是這都不是關鍵,關鍵是這裏藏了個坑,會導致數據異常。   原因是因爲在組包時,Raknet並不是根據包

原创 修改Windows2012系統環境變量的腳本記錄

@echo off ::設置java的安裝路徑,可方便切換不同的版本 set input=C:\Program Files\Java\jre1.8.0_161\ echo jdk路徑爲%input% set javaPath=%inp