@go

动态 列表
@soroqer

Rust 和 Go 在多線程的對比

1. Go 的 Goroutine:輕量且高效 Goroutine 是 Go 中非常核心的併發單元。它是 用户級線程,由 Go 的運行時調度器管理,而不是由操作系統的內核調度。 輕量性: 內存佔用:每個 goroutine 的棧內存只有 2KB 左右,遠小於傳統線程的棧大小(一般為幾 MB)。這使得你可以輕鬆地創建成千上萬的 goroutines,而不會造成明顯的內存壓力。

soroqer 头像

@soroqer

昵称 soroqer

@zhangfeidezhu

GoLang協程Goroutiney原理與GMP模型詳解

本文原文地址:GoLang協程Goroutiney原理與GMP模型詳解 什麼是goroutine Goroutine是Go語言中的一種輕量級線程,也成為協程,由Go運行時管理。它是Go語言併發編程的核心概念之一。Goroutine的設計使得在Go中實現併發編程變得非常簡單和高效。 以下是一些關於Goroutine的關鍵特性: 輕量級:Goroutine的創建和切換開銷非常小。與操作系統級別的線

zhangfeidezhu 头像

@zhangfeidezhu

昵称 張飛的豬

@runyubingxue

一次容器裏的殭屍進程排查

背景 “大棟老師”的一個應用,經常會有殭屍進程產生。程序的調用邏輯大概如下: 主進程A產生多個B類進程B1,B2,B3等,每一個B類進程又產生了若干個C類進程,C1,C2,C3,現象就是容器中會出現部分C進程的殭屍進程。 經過簡單的分析發現是一些B類進程先結束,導致一些C類進程成為殭屍進程。但是這個不符合常規的邏輯,因為正常情況下父進程如果結束,子進程會成為孤兒進程,從而被內核的1號進

runyubingxue 头像

@runyubingxue

昵称 潤雨冰雪

@runyubingxue

一次容器裏的殭屍進程排查2

前序 上次的排查,我們發現在容器裏golang進程作為1號進程的時候不具備等待孤兒進程退出狀態的能力,但是bash就可以,帶着這個問題,我們進一步研究。 尋找思路 我們再次看下維基百科對於殭屍進程的定義。 殭屍進程定義 對於裏面的內容,我們不逐字逐句分析,其中有一句話 子進程死後,系統會發送SIGCHLD信號給父進程,父進程對其默認處理是忽略。如果想響應這個消息,父進程通常在信號事件處理程序中,使

runyubingxue 头像

@runyubingxue

昵称 潤雨冰雪

@ansurfen

耗時一週,我的編程語言 Hulo 新增 Bash 轉譯和包管理工具

嘿,腳本開發者們! 還記得上週我介紹的那個能編譯成 VBScript 的現代編程語言 Hulo 嗎?這周它又有了重大更新! 🚀 本週重磅更新 1. Bash 轉譯器正式上線! 是的,你沒看錯!Hulo 現在不僅支持 VBScript,還支持 Bash 了! 這意味着你可以用同一套現代語法,同時生成 Windows 和 Linux/macOS 的腳本: // main.hl class User

ansurfen 头像

@ansurfen

昵称 Ansurfen

@user_zsxbv7bi

理解 Golang 中的最大/最小堆、`heap` 與優先隊列

最大堆、最小堆、 heap 、 優先隊列在數據結構算法題目裏都是一個東西。這裏討論 container/heap 的使用。 參考: https://pkg.go.dev/container/heap https://github.com/EndlessCheng/codeforces-go/blob/master/copypasta/heap.go 靈佬筆記,非常有用 在算法題目中,我們經

user_zsxbv7bi 头像

@user_zsxbv7bi

昵称 user_zsXbv7Bi

@hunter_58d48c41761b8

Golang基礎筆記三之數組和切片

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記三之數組和切片 這一篇筆記介紹 Golang 裏的數組和切片,以下是本篇筆記目錄: 數組定義和初始化 數組屬性和相關操作 切片的創建 切片的長度和容量 切片的擴容 切片操作 1、數組定義與初始化 第一篇筆記的時候介紹過數組的定義與初始化,這裏再介紹一下。 數組是具有固定長度的相同類型元素的序列。 這裏有兩個點

@soroqer

Array 與 Slice 的源碼分析與高效使用-Golang 🔥

在 Go 語言中,數組(array)和切片(slice)是兩種不同的數據結構,它們在內存分配機制上存在着顯著差異。深入理解這些差異及原理並恰當使用,能夠幫助我們提高代碼的執行效率。 在使用上,由於語法糖的存在,很多初學者對於二者並不敏感。數組的寫法是 [n]int,切片則是 []int,區別僅在於是否在 [] 中體現其長度。 從實現上講,slice 是 array 的一種封裝再實現,將長度不可變的

soroqer 头像

@soroqer

昵称 soroqer

@xiaolanbenlan

評估DSPM解決方案時要考慮的五大問題

隨着企業越來越意識到數據安全的重要性,DSPM市場正在迅速擴大。Gartner在其最新的“數據安全炒作週期”報告中,將術語“數據安全態勢管理”解釋為新興的解決方案類別。在該定義中,Gartner 強調 DSPM 解決方案使您的企業能夠: 清點、分類和保護其數據 防止數據泄露; 確保遵守法規。 但是,當您要設置 DSPM 解決方案時,您必須能夠區分供應商。隨着供應商數量的不斷增加,

xiaolanbenlan 头像

@xiaolanbenlan

昵称 星闌科技

@fengliudeshanghen

索引與性能優化

title: 索引與性能優化 date: 2024/12/15 updated: 2024/12/15 author: cmdragon excerpt: 索引是數據庫性能優化的重要工具,通過建立索引,可以加速數據的檢索和查詢操作,從而提高數據庫的響應速度。雖然索引能顯著改善數據訪問性能,但不當的使用也可能導致性能下降。 categories: 前端開發 tags

fengliudeshanghen 头像

@fengliudeshanghen

昵称 風流倜儻的傷痕

@axiaoxin_blog

Ghostty 終端默認快捷鍵列表

文章目錄 Ghostty 終端默認快捷鍵列表 基本操作 分屏操作 光標和選擇操作 其他操作 物理按鍵綁定 特殊按鍵説明 注意事項 結語 Ghostty 提供了豐富的默認快捷鍵,用户可以通過這些快捷鍵快速執行各種操作。以下是 Ghostty 的默認快捷鍵列表,這些快捷鍵可以通過keybind配置進行自定義。 Ghostty 終端默認快捷

axiaoxin_blog 头像

@axiaoxin_blog

昵称 axiaoxin

@fannaodeshafa

Go與C# 誰才更能節省內存?

Go和c#的開發者都説自己比較節省內存,到底哪種語言內存效率高呢? 這個説法在不同場景下都有其道理。 Go的優勢在於其輕量級的併發模型和簡單的運行時,這使得它在處理海量併發任務時,每個任務的內存開銷極小。 C#的優勢在於其高度優化的 垃圾回收 器( GC )和現代版本中提供的底層 內存 控制工具,這讓它能高效管理複雜的對象,並在關鍵路徑上實現對內存的精細操作。 下面舉個栗子🌰 Go:輕

fannaodeshafa 头像

@fannaodeshafa

昵称 煩惱的沙發

@muzijun_68c14af5563a2

帶緩存的 AdaRank(Cache-Optimized AdaRank)——Go 實現

帶緩存的 AdaRank(Cache-Optimized AdaRank)——Go 實現 把「梯度-權重」計算切成 ≤ L2/2 的塊,再用 L1 索引緩衝 + 預取 無分支批量更新; 實測 1e7 樣本×128 維 比原生 sort.Slice + 樸素更新 快 ~30 %,內存峯值仍 O(feature)。 1 緩存痛點(Go 剖面) 熱點 剖面佔比

muzijun_68c14af5563a2 头像

@muzijun_68c14af5563a2

昵称 木子君_求贊

@invalidnull

pm2 工具在 Node.js 開發和部署中的重要作用

引言 在Node.js開發和部署體系中,pm2 (Process Manager 2) 是一個備受歡迎的工具,用於簡化應用程序的管理、監控和部署。pm2不僅僅是一個進程管理器,還提供了許多功能,包括負載均衡、日誌管理、自動重啓等,使得在生產環境中運行Node.js應用更為可靠和高效。 1. 安裝和基本用法 首先,通過以下命令安裝pm2: npm install -g pm2 使用pm2啓動一個No

invalidnull 头像

@invalidnull

昵称 註銷

@manongsir

PHP轉Go系列 | ThinkPHP與Gin框架之API接口簽名設計實踐

大家好,我是碼農先森。 回想起以前用模版渲染數據的歲月,那時都沒有 API 接口開發的概念。PHP 服務端和前端 HTML、CSS、JS 代碼混合式開發,也不分前端、後端程序員,大家都是全乾工程師。隨着前後端分離、移動端開發的興起,用後端渲染數據的開發方式效率低下,已經不能滿足業務對需求快速上線的要求了。於是為了前後端的高效協同開發引入了 API 接口,只要在開發需求之前約定好數據傳參,之後便可以

manongsir 头像

@manongsir

昵称 碼農先森

@manongsir

PHP轉Go系列 | ThinkPHP與Gin框架之OpenApi授權設計實踐

大家好,我是碼農先森。 我之前待過一個做 ToB 業務的公司,主要是研發以會員為中心的 SaaS 平台,其中涉及的子系統有會員系統、積分系統、營銷系統等。在這個 SaaS 平台中有一個重要的角色「租户」,這個租户可以擁有一個或多個子系統的使用權限,此外租户還可以使用平台所提供的開放 API 「即 OpenApi」來獲取相關係統的數據。有了 OpenApi 租户可以更便捷的與租户自有系統進行打通,提

manongsir 头像

@manongsir

昵称 碼農先森

@manongsir

PHP轉Go系列 | ThinkPHP與Gin框架之打造基於WebSocket技術的消息推送中心

大家好,我是碼農先森。 在早些年前客户端想要實時獲取到最新消息,都是使用定時長輪詢的方式,不斷的從服務器上獲取數據,這種粗暴的騷操作實屬不雅。不過現如今我也還見有人還在一些場景下使用,比如在 PC 端掃描二維碼,然後使用長輪詢的方式從服務端獲取最新的掃碼信息,來判斷用户是否已經掃碼完成,諸如這種場景還有不少。其實大家都知道長輪詢的方式不好,那為什麼還有人使用呢? 我想最直接的原因就是「開發起來簡

manongsir 头像

@manongsir

昵称 碼農先森

@manongsir

PHP轉Go系列 | ThinkPHP與Gin框架之Redis延時消息隊列技術實踐

大家好,我是碼農先森。 我們在某寶或某多多上搶購商品時,如果只是下了訂單但沒有進行實際的支付,那在訂單頁面會有一個支付倒計時,要是過了這個時間點那麼訂單便會自動取消。在這樣的業務場景中,一般情況下就會使用到延時隊列。 通常在客户下單之後,就會將訂單數據推送到延時隊列中並且會對該消息設置一個延時時長,比如設置五分鐘、十分鐘、或十五分鐘等,具體的時長應該還是要結合當前的業務進行衡量,然後消費端會在指定

manongsir 头像

@manongsir

昵称 碼農先森

@free_like_bird

MongoDB必知必會

MongoDB的知識點梳理,內容有chatgpt4.1輔助完成,使用的提示詞(文章大致內容)如下,可按需“食用”😊: mongodb 定義 關鍵概念 如何增刪改查 如何持久化 如何用go語言操作他 是否支持事務,如果是實現原理,他相對於mysql他存儲數據的底層邏輯是? 1. MongoDB 定義 MongoDB 是一個開源的、面向文檔的 NoSQL 數據庫,以高性能、高可用、易擴展著稱。它用

free_like_bird 头像

@free_like_bird

昵称 自由自在像小鳥

@gvison

Sponge與DeepSeek協作:一種突破傳統開發後端服務的解決方案,打造高效後端開發新範式

背景介紹 技術演進背景 隨着 DeepSeek 等開源 AI 工具的崛起,智能編程助手正在重塑軟件開發流程。對於開發者而言,AI 輔助編碼已為生產力工具。雖然目前 AI 尚無法直接根據需求文檔和指定技術棧生成完整生產級項目,但在特定場景下已展現出驚人潛力:基於詳細邏輯描述生成代碼片段準確率可達 80%以上。目前AI 在項目的工程化能力方面仍顯不足,而Sponge框架則在工程化能力表現出色,兩者恰好

gvison 头像

@gvison

昵称 gvison

@codesheep_pro

我天,Java 已淪為老四。。

略想了一下才發現,自己好像有大半年都沒有關注過 TIOBE 社區了。 TIOBE 編程社區相信大家都聽過,這是一個查看各種編程語言流行程度和趨勢的社區,每個月都有榜單更新,每年也會有年度榜單和總結出爐。 昨晚在家整理瀏覽器收藏夾時,才想起了 TIOBE 社區,於是打開看了一眼最近的 TIOBE 編程語言社區指數。 沒想到,Java 居然已經跌出前三了,並且和第一名 Python 的差距也進一步拉

codesheep_pro 头像

@codesheep_pro

昵称 CodeSheep