🏆🏆為什麼別人的 CLion 運行 C/C++ 項目絲滑流暢,而你的卻頻繁卡頓、編譯轉圈? ✅秘密就藏在這個 clion.vmoptions文件裏! 作為 IDEA/PyCharm/WebStorm/GoLand 調優系列的續集⏬ 🏅我把我壓箱底的 CLion 性能調優參數表 分享出來——包含 JVM 堆內存優化、垃圾回收策略、CMake 構建加速 等關鍵設置; 💎還附上每項
一次基於“時間回溯”的10分鐘級故障排查,獻給所有迷信新工具的程序猿🎰🎰。 ✅上週調試一個 Node.js + Go 的混合項目時: Python|Java則無影響,這次我遇到了職業生涯最詭異的 Bug——Ninja 切換指定模式後,Node 和 Go 突然卡死,控制枱像被凍住了一樣!❌ 更離譜的是,這個問題只出現了一次,10 分鐘後我覆盤解決了,之後無論怎麼復現都失敗😂😂!
公眾號首發地址:https://mp.weixin.qq.com/s/5wrYaHXBpuN0WxKAaNNp-A 我們知道 Go 語言沒有直接對用户暴露線程的概念,而是通過 goroutine 來控制併發。不過,在 Go 程序啓動時,其背後的調度器往往是多線程運行的。在 Go 語言的 GMP 調度模型中,P 決定着同時運行的 goroutine 數,我們可以通過環境變量 GOMAXPROCS 或
2025最好的Next.js面試題(一) 最近在面試,就寫一些關於問到的面試題,同時也過一下知識點。 基礎概念 什麼是Next.js?它與React的關係是什麼? Next.js是一個基於React的全棧開發框架,由Vercel開發和維護。它在React的基礎上提供了額外的功能和優化,如服務器組件(Server Components)、流式渲染(Streaming)、服務器操作(Server Ac
公眾號首發:https://mp.weixin.qq.com/s/no995DjgiS3muyPSt2QhUg 在 Go 語言中,io.Discard 是一個實現了 io.Writer 接口的特殊變量,用於丟棄所有寫入的數據。 io.Discard 在 Go 1.15 及之前版本中是放在 io/ioutil 包中實現的。而在 Go 1.16 版本,得以正式轉正,被實現在 io 包中。本文我們來一起
決勝 Next.js 面試:深入剖析緩存機制 1. 引言:為何 Next.js 中的緩存如此重要? Next.js 通過其精密的緩存系統,極大地提升了應用程序的性能、降低了服務器負載,並通過提供預先計算的結果或數據來最小化運營成本。 對於任何期望構建優化應用的開發者而言,深入理解這些緩存層是至關重要的。 在技術面試中,對 Next.js 緩存機制的掌握程度,往往能體現出開發者對 Nex
本文總結: 🔹 運行機制 React Native 的運行機制基於兩個線程之間的通信(JavaScript 線程和 Native 線程),通過 Bridge(橋) 實現數據交互。🌉這使得 JS 邏輯與原生界面可以協同工作,實現流暢體驗。 🔹 優勢 👍 學習成本低,JavaScript 和 React 開發者可以快速上手 滿足大部分產品需求,適用於多數中小型 App 代碼
公眾號首發:https://mp.weixin.qq.com/s/Xbk4QF7HFll102xaF5r_3Q 如果你熟悉 Java、Python 等編程語言,那麼你一定聽説或者使用過進程池或線程池。因為進程和線程不是越多越好,過多的進程或線程可能造成資源浪費和性能下降。所以池化技術在這些主流編程語言中非常流行,可以有效控制併發場景下資源使用量。 而 Go 語言則沒有提供多進程和多線程的支持,僅提
公眾號首發:https://mp.weixin.qq.com/s/N1JxiRnr5c4pq0RBo3RGYA 我在網上衝浪時,在 GitHub 上發現了一個感興趣的開源項目 OneX ,我將其下載到本地,現在我該如何知道這個項目的體量呢?一個非常直觀的指標是看這個項目有多少行代碼。 我們可以使用如下命令,來統計 OneX 項目代碼行數: $ cd onex $ find . -name "*.g
公眾號首發地址:https://mp.weixin.qq.com/s/r8mqOUIoCu0713XcH3P1-Q 在編程中,有限狀態機(FSM)是管理複雜狀態流轉的優雅工具,其核心在於通過明確定義狀態、事件和轉換規則,將業務邏輯模塊化。本文將探討在 Go 中如何使用有限狀態機。 有限狀態機 在介紹有限狀態機之前,我們可以先來看一個示例程序: https://github.com/jianghus
新的一週,祝你開心! 好久沒分享面經了,今天來個大的---字節的後端實習二面,簡直就是八股盛宴,問的太多太全面了。 面經詳解 1. 數據庫的隔離級別有哪些? 數據庫事務隔離級別主要分為四種,從低到高依次為: 讀未提交(Read Uncommitted) 允許事務讀取其他事務未提交的數據,可能導致髒讀、不可重複讀和幻讀。 讀已提交(Read Committ
根據360+真實面試數據,篩選最高頻、最核心的50個問題,按技術領域分類並標註優先級(1-5🌟)。問題按優先級降序排列,同星級按出現頻率排序。 一、性能優化(佔比26%,面試核心) 優先級 問題 出現次數 🌟🌟🌟🌟🌟 你覺得如何提高頁面加載速度? 11次 🌟🌟🌟🌟🌟
執行上下文 js在執行代碼之前,需要經過一系列的“準備”,這被稱為執行上下文 ,其包含詞法環境 和this 。所有的 js 代碼在運行時都是在執行上下文中進行的,每創建一個執行上下文,就會將當前執行上下文放到一個棧頂,這就就是我們常説的執行棧 。 執行上下文的創建 何時創建執行上下文 JavaScript 中有三種情形會創建新的執行上下文: 全局執行上下文 ,進入去全局代碼的時候。任何不在函數
公眾號首發地址:https://mp.weixin.qq.com/s/TGNG34qJTI7SZOENidYBOA 我曾在《Go 中空結構體慣用法,我幫你總結全了!》一文中介紹過空結構體的多種用法,本文再來補充一種慣用法:將空結構體作為 Context 的 key 來進行安全傳值。 NOTE: 如果你對 Go 語言中的 Context 不夠熟悉,可以閲讀我的另一篇文章《Go 併發控制:con
公眾號首發:https://mp.weixin.qq.com/s/JwEPt3oZ3aY8ZzKddwnpiA 剛開始接觸 Go 的開發者大概都會遇到一個問題:我該如何組織我的 Go 項目?這種問題當然沒有標準答案,不過 Go 官方下場,給了廣大 Gopher 一個推薦模板。本文就來帶大家一起來學習一下 Go 官方對於 Go 項目佈局的指導原則。 本文以 Go 官方博客「Organizing a
最近收到一位粉絲的提問,關於分庫分表在面試中如何結合業務邏輯舉例的問題。 他提到之前使用 serverless 數據庫時沒涉及分庫分表,現在遇到了具體場景,想請教合適的方案。 這其實是面試中很常見的考點,既要看技術思路,更要看能否結合業務落地,今天就藉着這個問題展開聊聊。 前言 怕有些朋友沒有了解過這方面的知識點,先來解釋一下這些概念: 分庫分表的核心目標:解決單庫單表因數據量過大(如千萬 /
大家好,我是小富~ 面試被問到限流算法,很多面試官會讓直接手寫令牌桶和漏桶的實現。雖然平時用過Redis、Guava等現成的限流工具,但真要手寫還是有點慌。今天就來聊聊這兩種經典限流算法的區別,並用Java手寫實現。 很多的限流工具底層都應用了它們 一、令牌桶 vs 漏桶:核心區別 令牌桶 令牌桶的核心思想:固定容量的桶,以固定速率往桶裏放令牌,請求來了就從桶拿令牌,沒令牌就拒絕。 有點像買票進站
大家好,我是小富~ 面試官:OOM類型有哪些? 你:就是老年代放不下了嘛! 面試官:等消息吧! OOM(Out Of Memory) 錯誤有多種類型,每種類型對應不同的內存區域或觸發場景。以下是常見的 OOM 類型及其產生原因: 1. java.lang.OutOfMemoryError: Java heap space 觸發原因:堆內存(存放對象實例)不足,無法分配新對象。
先來問一下大家,如果你現在拿到兩個offer,一個是薪資更高的中小廠,一個是規模大、技術先進的大廠,你會選擇哪個offer? 不少粉絲股東留言説上岸大廠太難了,有沒有好上岸的中小廠的最新面經。 必須安排,今天分享一位朋友社招的面經: 富途 一面 http相較於https多了什麼步驟? https證書為什麼一邊是對稱加密,一邊是非對稱加密(沒有回答出來) 解析:非對稱加密是為了保護證書裏的對
引言 作為一名資深的 Java 摸魚工程師 又到了一年一度的校招季,老闆笑嘻嘻地遞來了簡歷,語重心長地對我説:“給團隊注入點新鮮血液!” 我信心滿滿地打開視頻面了這個同學 結果……他直接甩了我一句“老古董”,然後啪,把視頻掛了。 我:??? 面試中 買了一杯星巴克,我坐進了電話亭,看了一下簡歷 學歷不錯嘛,985本碩,字節、螞蟻、阿里實習一圈,還自稱“精通多線程、高併發”。 我抿了一口咖啡
前言 筆者的一個好友(女生),學歷普通一本,非科班出身,在國內一家大型外包公司上班 因遲遲無法轉正成為正式甲方員工(當初入職的時候承諾,有一定的機率轉正成為甲方員工) 且在這家公司認真工作了三年多了,三年只漲工資500塊錢 遂在六月份開始準備跳槽去甲方 歷時將近三個月,總算是在8月底拿到了自己滿意的offer 一共是通過了9家的面試,其中有6家是外包公司(練手的面試) 當然,外包的
緩存穿透 概念 緩存穿透是指查詢一個數據庫中不存在的數據,由於這個數據在緩存不存在,所以會直接跳過緩存,直接請求數據庫。 解決辦法 1. 緩存一個空對象 如果查詢的是一個不存在的數據時,可以設置一個短期過期時間的key的數據,然後將它存入緩存中。 2. 布隆過濾器 2.1 先把緩存中的數據的key值存入到布隆過濾器中 2.2 在查詢緩存前,先判斷當前的key值是否存在於布隆過濾器中,其中分為兩個結
公眾號首發地址:https://mp.weixin.qq.com/s/t47eJ9rYK2CZ-hIbjx7kSg 本文帶大家一起來深入探究一下 Go 1.23 中發佈的迭代器特性,這是一篇遲來的文章,再不寫這篇文章 Go 1.25 就發佈了 :),Go 1.25 預計將於 2025 年 8 月發佈。 由於篇幅過長,所以文章拆分成了上下兩篇發佈,本文為上篇——使用篇。下篇為——原理篇,記得來讀。