原创 性能測試中唯一標識的JMH測試

前文分享了幾種性能測試中常用到的生成全局唯一標識的案例,雖然在文中我猜測了幾種方案設計的性能,並根據自己的經驗給出了適用的場景。 但對於一個性能測試工程師來講,有真是測試數據才更有說服力。這讓我想起來之前學過的Java微基準測試框架 JMH

原创 自定義對象池在Caffeine框架中實踐

前文講到自定義對象池的實現,通常來說都是獲取到對象,使用完之後要主動歸還對象。但是在某些場景下,並不能輕易在代碼中調用 returnObject 方法歸還。此時就需要 Case by Case 具體情況具體分析,解決了。 今天分享一下自定義

原创 性能測試中的唯一標識問題研究

在性能測試場景中,生成全局唯一標識符(GUID)是一個常見的需求,主要用於標識每個請求或者事務,以便於追蹤和分析。這是因爲在性能測試中,需要對系統的各個功能進行測試,而每個功能都需要有一個唯一的標識來區分。如果不使用全局唯一標識,則可能會出

原创 Druid MySQL連接池本地實踐

本來不打算寫這個題目的,因爲 Druid 大多都是在 Spring 中使用的,它很多功能非常強大,但是對於 MySQL 性能測試中並不實用。但是由於特殊原因,還是得把這個拾起來。 在以前的性能測試的過程當中,我通常會採用 線程綁定連接 的方

原创 自定義限速功能實踐——Caffeine

之前使用了JDK自帶的 Map 實現了自定義限速的簡單需求。在當時的實現當中,有一個被隱藏的小設計,就是如果是用使用異步線程,用來根據配置給請求次數數據重置。如此這樣,校驗方法會非常簡單方便。 對於普通 Java 項目來說,如果使用異步線程

原创 Java & Go泛型對比

在當今軟件開發領域中,泛型是一種強大的編程特性,它能夠在不犧牲類型安全的前提下,實現代碼的複用和靈活性。Java作爲一種老牌的面向對象編程語言,在其長期的發展過程中,已經積累了豐富的泛型經驗和應用場景。而Go語言作爲一種相對較新的編程語言,

原创 高優異步任務解決雙重異步集合點阻塞問題

在性能測試的實踐當中,異步任務是離不開的。Java異步編程提高了應用程序的性能和響應性,通過避免線程阻塞提高了資源利用率,並簡化了併發編程的複雜性。改善用戶體驗,避免死鎖和線程阻塞等問題。異步編程利用CompletableFuture、Fu

原创 自定義對象池實踐

自從研究了 commons-pool2 之後,進行了多次實踐,實現的效果也是非常好的。但是在一些輕量級場景當中,使用 commons-pool2 着實有點大材小用。 在某一次嘗試自定義的池化技術開發,優化服務內存的實踐當中,實在是忍無可忍,

原创 自定義限速功能實踐——Map版本

說起 限速 ,想必各位不會陌生。通常在一個服務程序當中,限速指的是對同一類請求進行速率的限制,用來防止服務端某些資源被過度消耗,從而保障服務的穩定性。 限速的好處有以下幾點: 保護系統穩定性: 限速可以避免系統因過多請求而過載,導致性能下

原创 Java併發編程基礎(下)

書接上回,繼續分享Java併發編程基礎內容。 Deadlock、Livelock和Thread Starvation Deadlock Deadlock 是兩個或多個線程無法繼續執行的情況,因爲它們都在等待其他線程釋放資源或鎖。這會導致任何

原创 Java併發編程基礎(上)

介紹 Java 是一種功能強大、用途廣泛的編程語言。Java併發是指多個線程同時執行程序,共享資源和數據。通過synchronized關鍵字、Lock接口等實現線程同步,避免競態條件和數據不一致問題。併發編程提高系統性能和資源利用率,然而併

原创 JDK17 Groovy Caffeine 模塊化報錯分享

最近在升級各種依賴包的過程之總是能遇到一些Java模塊化的問題。Java模塊化是Java 9引入的一種新的特性,它將Java類庫劃分爲若干個模塊,每個模塊都具有自己的包和類。模塊化可以提高Java程序的安全性、可維護性和可移植性。 雖說如此

原创 API安全概覽

API(應用程序接口)已迅速成爲現代軟件開發的基石,推動着各個領域的廣泛技術進步和創新。它們在應用程序開發、物聯網(IoT)、電子商務、數字金融服務以及軟件開發等方面發揮着至關重要的作用。可以說,如果沒有API,我們所熟知的互聯網將無法存在

原创 Go語言對象池實踐

對象池是一種在編程中用於優化資源管理的技術。它的基本思想是在應用程序啓動時預先創建一組對象,並在需要時重複使用這些對象,而不是頻繁地創建和銷燬。這種重用的機制有助於減少資源分配和回收的開銷,提高程序性能,特別在涉及大量短壽命對象的場景下效果

原创 高性能序列化工具ChronicleWire

之前使用chronicle進行過日誌回放框架的設計,效果很不錯。後面在更加深入瞭解過程中,發現chronicle性能優勢中一個非常重要的方面,就是序列化和反序列化。chronicle提供了多個功能類,實現不同格式數據的序列化和反序列化功能。