引言 在當(dāng)今的編程世界中,并發(fā)處理能力變得越來(lái)越重要。C++20 在并發(fā)方面帶來(lái)了一些進(jìn)步全跨,使開(kāi)發(fā)者能夠更高效漾橙、更安全地編寫(xiě)多線程應(yīng)用程序卸伞。這些進(jìn)步主要包括: 作用域線程(S...
![240](https://cdn2.jianshu.io/assets/default_avatar/12-aeeea4bedf10f2a12c0d50d626951489.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
引言 在當(dāng)今的編程世界中,并發(fā)處理能力變得越來(lái)越重要。C++20 在并發(fā)方面帶來(lái)了一些進(jìn)步全跨,使開(kāi)發(fā)者能夠更高效漾橙、更安全地編寫(xiě)多線程應(yīng)用程序卸伞。這些進(jìn)步主要包括: 作用域線程(S...
ClickHouse性能調(diào)優(yōu) - 當(dāng)磁盤(pán)IO是瓶頸的時(shí)候 引言 ClickHouse的性能調(diào)優(yōu)問(wèn)題是一個(gè)大的話題速缨。雖然ClickHouse以其高速的數(shù)據(jù)處理能力而聞名褒翰,但在實(shí)...
手?jǐn)]一個(gè)C++迭代器 先擼一個(gè)簡(jiǎn)單版本 C++語(yǔ)言的特點(diǎn)就是少了一個(gè)符號(hào)都會(huì)造成非常不同的結(jié)果。以下代碼有個(gè)很致命的錯(cuò)誤楚里,不知道能否一眼看出來(lái)断部。 再擼一個(gè)可以跟ranges配...
引言 在過(guò)去,非結(jié)構(gòu)化數(shù)據(jù)(如文本班缎、圖片蝴光、音頻、視頻)通常被認(rèn)為難以在數(shù)據(jù)庫(kù)中直接使用吝梅,因?yàn)檫@些數(shù)據(jù)類型的多樣性和復(fù)雜性虱疏。然而,隨著技術(shù)的發(fā)展苏携,嵌入技術(shù)可以將非結(jié)構(gòu)化數(shù)據(jù)(如...
STL庫(kù)的ranges C++20的<ranges>庫(kù)通過(guò)引入范圍和視圖的概念做瞪,不僅豐富了STL的功能,也引領(lǐng)了更現(xiàn)代右冻、高效装蓬、表現(xiàn)力強(qiáng)的編程實(shí)踐。它鼓勵(lì)開(kāi)發(fā)者采用更函數(shù)式和聲...
ClickHouse中的各種設(shè)置 ClickHouse中的設(shè)置有幾百個(gè)纱扭,下面對(duì)這些設(shè)置做了一個(gè)簡(jiǎn)單的分類牍帚。
static_cast caution It is likely to lead unexpected behavior and maybe dangerous to inv...
ClickHouse中“大列”造成的JOIN的內(nèi)存超限問(wèn)題 “大列”是指單行數(shù)據(jù)量非常大的列,通常是100KiB以上乳蛾。這樣的列會(huì)導(dǎo)致JOIN(通常LEFT JOIN 和 IN...
ClickHouse的JOIN算法選擇邏輯以及auto選項(xiàng) ClickHouse中的JOIN的算法有6種: Direct; Partial merge; Hash; Grac...
Linux性能調(diào)優(yōu)技術(shù)概覽 概述 這里的Linux性能調(diào)優(yōu)主要是關(guān)于Linux系統(tǒng)上程序的性能跟蹤暗赶,因?yàn)橹挥惺占阶銐虻臏?zhǔn)確的性能數(shù)據(jù)才能找到程序和系統(tǒng)的性能瓶頸。Linux...
MergeTree表的三種格式 MergeTree表引擎有三種格式:Compact肃叶、Wide和In-memory蹂随,前兩個(gè)為主要格式。具體區(qū)別是: Compact - 所有的列...
concept 這套語(yǔ)法優(yōu)化了模板編程因惭,替代了原來(lái)的SFINAE編程模式岳锁,通過(guò)給模板類參數(shù)加入限制條件,使得代碼可讀性更強(qiáng)蹦魔、編譯更快激率、錯(cuò)誤提示更容易理解。 SFINAE編程模...
深入使用noexcept 簡(jiǎn)介 noexcept是C++11引入的,表明函數(shù)是否會(huì)拋出異常低缩。正確使用它可以優(yōu)化性能嘉冒。 noexcept使用語(yǔ)法有兩種: noexcpet no...
如何提高程序性能 本文主要探討提高程序性能的途徑、方法和最佳實(shí)踐。 總體方向 盡可能利用緩存 盡可能利用多核 還有一個(gè)小方向是盡可能減少內(nèi)存復(fù)制健爬,這個(gè)產(chǎn)生出右值引用、移動(dòng)構(gòu)造...
多線程與同步 多線程并行執(zhí)行能夠大大提升程序運(yùn)行效率么介,但是也要注意隨之帶來(lái)的線程間同步問(wèn)題娜遵,避免競(jìng)態(tài)條件(“Race Condition”)引起的難以發(fā)現(xiàn)的bug。這篇總結(jié)一...
__restrict 是 C 語(yǔ)言中的關(guān)鍵字壤短,它的作用是為編譯器帶來(lái)附加信息设拟。當(dāng)對(duì)指針增加 __restrict 修飾之后,表示當(dāng)前指針在存活期間是獨(dú)占內(nèi)存的久脯,不會(huì)有其他指針...
編譯器會(huì)為class和struct(實(shí)際上兩者在C++中是一回事)自動(dòng)生成構(gòu)造函數(shù)纳胧、賦值操作符函數(shù)和析構(gòu)函數(shù)。如果不是這樣帘撰,那么開(kāi)發(fā)者就必須自己寫(xiě)一些枯燥冗余的代碼跑慕。然而編譯...
在8字節(jié)對(duì)齊的情況下指針的低三位都是0,在某些情況下我們需要維持跟指針對(duì)應(yīng)的額外信息摧找,例如標(biāo)志位核行,但是又不想為此創(chuàng)建一個(gè)結(jié)構(gòu)體,那就可以利用指針的低三位來(lái)存儲(chǔ)額外信息蹬耘。 比如...
一致性哈希算法在1997年由麻省理工學(xué)院[https://baike.baidu.com/item/%E9%BA%BB%E7%9C%81%E7%90%86%E5%B7%A5%...