向量檢索ANN(Approximate Nearest Neighbor Search)抗碰,指的是對(duì)于一個(gè)query向量催烘,從向量庫中找到和它距離最接近的k個(gè)向量芍锚。這是一個(gè)典型的...
![240](https://upload.jianshu.io/users/upload_avatars/4717565/ea654134-b784-4f5a-8f25-1c230d703dd9.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
向量檢索ANN(Approximate Nearest Neighbor Search)抗碰,指的是對(duì)于一個(gè)query向量催烘,從向量庫中找到和它距離最接近的k個(gè)向量芍锚。這是一個(gè)典型的...
bazel是什么:https://zhulao.gitee.io/blog/2019/04/05/%E7%BC%96%E8%AF%91%E6%9E%84%E5%BB%BA%E...
shell腳本 目錄 啟動(dòng)行參數(shù)解析[#%E5%90%AF%E5%8A%A8%E8%A1%8C%E5%8F%82%E6%95%B0%E8%A7%A3%E6%9E%90] 參數(shù)...
在分布式的服務(wù)器環(huán)境下,設(shè)計(jì)到大量的進(jìn)程以及相同進(jìn)程的不同實(shí)例锹引,需要一種有效的進(jìn)程id來做唯一標(biāo)識(shí)缨硝。 對(duì)于這種數(shù)據(jù)結(jié)構(gòu)的需求是: 盡可能簡單芋簿,易讀 省空間 對(duì)于游戲的服務(wù)器進(jìn)...
設(shè)計(jì)模式里面有一個(gè)很重要的思想,原話可能是“不要依賴于具體说墨,而是要依賴于抽象”骏全。在軟件的設(shè)計(jì)中,這種思想可謂算是指導(dǎo)思想了尼斧。比如系統(tǒng)要設(shè)計(jì)一個(gè)rpc服務(wù)姜贡。一種比較好的設(shè)計(jì)思路...
在開發(fā)中,經(jīng)常有這樣的場景棺棵,把一些功能打包為一個(gè)動(dòng)態(tài)庫楼咳,這個(gè)庫作為工具人,可以被其他不同進(jìn)程鏈接烛恤,然后把自己的功能提供給對(duì)應(yīng)鏈接的目標(biāo)程序母怜。這也是動(dòng)態(tài)庫最常見的用法,如下所示...
最近遇到一個(gè)問題缚柏,有兩個(gè)底層依賴模塊苹熏,分別是dep1和dep2。在dep1中有調(diào)用dep2的代碼。本地開發(fā)完畢后轨域,合入分支編譯報(bào)錯(cuò) 提示符號(hào)未定義袱耽。但是,本地編譯是正常的干发,在...
在游戲里面有各種“隨機(jī)”的需求朱巨,比如從n個(gè)用戶里面隨機(jī)給m個(gè)發(fā)獎(jiǎng)勵(lì)。那么铐然,要如何實(shí)現(xiàn)呢蔬崩?簡單的來說,可以調(diào)一個(gè)stl的函數(shù)來實(shí)現(xiàn)搀暑,偽代碼如下: 那shuffle背后是怎么實(shí)現(xiàn)...
假設(shè)有個(gè)場景沥阳,希望在程序在執(zhí)行的時(shí)候,調(diào)用函數(shù)的時(shí)候可以自動(dòng)打印出它的調(diào)用棧自点⊥┖保或者說希望自動(dòng)打印出在這個(gè)函數(shù)中的執(zhí)行時(shí)間。比如這段程序桂敛,希望執(zhí)行到任何函數(shù)的時(shí)候功炮,都打印出它的...
Protobuff是一個(gè)與開發(fā)語言、平臺(tái)無關(guān)序列化的工具术唬,廣泛應(yīng)用于需要跨進(jìn)程傳輸數(shù)據(jù)的場景薪伏。除此之外,PB還提供了強(qiáng)大的反射能力粗仓〖藁常可以利用反射的技巧,可以大量降低重復(fù)的代碼...
protobuf 中提供的編譯器protoc借浊,支持開發(fā)者自定義plugin的擴(kuò)展塘淑,根據(jù).proto文件生成各種各樣的代碼。官方文檔 https://developers.go...
lua可以通過與C函數(shù)相互調(diào)用來擴(kuò)展程序功能蚂斤,在C中嵌入lua腳本既可以讓用戶在不重新編譯代碼的情況下修改lua代碼更新程序存捺,也可以給用戶提供一個(gè)自由定制的接口,這種方法遵循...
打印程序的調(diào)用棧是一種常見的debug工具曙蒸,最常用的就是backtrace函數(shù)去獲得堆棧信息捌治。不過,這個(gè)函數(shù)的調(diào)用成本很高纽窟,是容易使用不當(dāng)具滴,造成性能問題。在這里整理幾種獲得程...
jemalloc 是一款內(nèi)存分配器, 除了可以提高分配內(nèi)存的效率之外师倔。jemalloc還可以通過profiling機(jī)制來發(fā)現(xiàn)并定位內(nèi)存泄漏构韵。 1. 安裝 官方提供的insta...
年后在微信讀書上面看到兩本關(guān)于linux shell的書周蹭,分別是《linux shell腳本攻略》 和 《linux 性能優(yōu)化》。漲了寫奇怪的姿勢疲恢,Mark在這里凶朗。 tee ...
對(duì)于一個(gè)函數(shù)調(diào)用,比如main 調(diào)用 square显拳,在進(jìn)入square的首地址后棚愤,才會(huì)進(jìn)行壓棧(push rbp)。如果在調(diào)用squere的函數(shù)前杂数,已經(jīng)把squere首地址插入跳轉(zhuǎn)到其他函數(shù)的匯編后宛畦,square函數(shù)的push rbp已經(jīng)被覆蓋了,square函數(shù)的棧幀并不會(huì)被真正的建立揍移。
一種基于so的C/C++服務(wù)熱更新方案對(duì)于線上的服務(wù)次和,經(jīng)常會(huì)出現(xiàn)xxx服務(wù)的某一段邏輯里面有bug,需要緊急修復(fù)那伐。對(duì)于無狀態(tài)的服務(wù)踏施,可以修復(fù)之后,直接重啟罕邀。但是畅形,對(duì)于有狀態(tài)的服務(wù),重啟意味著內(nèi)存狀態(tài)丟失和長連接斷...
0000000000401106 <_Z6squarei>:
401106: 55 push %rbp
401107: 48 89 e5 mov %rsp,%rbp
40110a: 89 7d fc mov %edi,-0x4(%rbp)
40110d: 8b 45 fc mov -0x4(%rbp),%eax
401110: 01 c0 add %eax,%eax
401112: 5d pop %rbp
401113: c3 retq
0000000000401114 <main>:
401114: 55 push %rbp
401115: 48 89 e5 mov %rsp,%rbp
401118: bf 64 00 00 00 mov $0x64,%edi
40111d: e8 e4 ff ff ff callq 401106 <_Z6squarei>
401122: b8 00 00 00 00 mov $0x0,%eax
401127: 5d pop %rbp
401128: c3 retq
401129: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
一種基于so的C/C++服務(wù)熱更新方案對(duì)于線上的服務(wù)诉探,經(jīng)常會(huì)出現(xiàn)xxx服務(wù)的某一段邏輯里面有bug日熬,需要緊急修復(fù)。對(duì)于無狀態(tài)的服務(wù)肾胯,可以修復(fù)之后竖席,直接重啟。但是阳液,對(duì)于有狀態(tài)的服務(wù),重啟意味著內(nèi)存狀態(tài)丟失和長連接斷...
整理程序調(diào)試的一些踩坑揣炕,經(jīng)驗(yàn)整理帘皿,注意事項(xiàng)等。 C++后端開發(fā)的踩坑整理http://www.reibang.com/p/b67222570785[https://www....
整理C++模板在開發(fā)中的一些使用技巧 編譯期靜態(tài)檢查 實(shí)現(xiàn)可以檢查類型的memcpy (避免手滑拷貝了兩個(gè)不一樣長度的對(duì)象) 根據(jù)T是否是某個(gè)類的派生類 根據(jù)T是不是int匹...
1. LD_PRELOAD 實(shí)現(xiàn)注入的原理 LD_PRELOAD是linux系統(tǒng)中的一個(gè)環(huán)境變量畸陡,它可以指定優(yōu)先加載某個(gè)動(dòng)態(tài)庫鹰溜。當(dāng)主程序中有相同的符號(hào)出現(xiàn)在不同的動(dòng)態(tài)庫中,會(huì)...