原创 HotSpot JVM garbage collection options cheat sheet

In this article I have collected a list of options related to GC tuning in

原创 後綴數組原理及應用詳解

  在pongba的討論組上看到一道Amazon的面試題:找出給定字符串裏的最長迴文。例子:輸入XMADAMYX。則輸出MADAM。這道題的流行解法是用後綴樹(Suffix Tree)。這坨數據結構最酷的地方是用它能高效解決一大票複雜的字

原创 幾種經典的網絡服務器架構模型的分析與比較

前言 事件驅動爲廣大的程序員所熟悉,其最爲人津津樂道的是在圖形化界面編程中的應用;事實上,在網絡編程中事件驅動也被廣泛使用,並大規模部署在高連接數高吞吐量的服務器程序中,如 http 服務器程序、ftp 服務器程序等。相比於傳統的網絡編程

原创 Sessions and transactions

This page explains common techniques to deal with theSession and transactions in Hibernate applications. Refer to the

原创 互斥鎖 自旋鎖 自適應自旋鎖

互斥鎖: 從 實現原理上來講,Mutex屬於sleep-waiting類型的鎖。例如在一個雙核的機器上有兩個線程(線程A和線程B),它們分別運行在Core0和 Core1上。假設線程A想要通過pthread_mutex_lock操作去得到

原创 Top 15 Java threading interview questions asked in Investment banks

Thread interview questions Java Multi-threading and concurrency questions are essential part of any Java interview. If

原创 堆排序及其分析

前言 記得在學習數據結構的時候一味的想用代碼實現算法,重視的是寫出來的代碼有一個正確的輸入,然後有一個正確的輸出,那麼就很滿足了。從網上看了許多的代碼,看了之後貌似懂了,自己寫完之後也正確了,但是不久之後就忘了,因爲大腦在回憶的時候,

原创 Java性能調優之操作系統

首先講述下操作系統層面的性能監控工具。 在性能調優的工作中通常可見三個必不可少的步驟: 性能監控=》性能分析=》性能調優。 性能監控(perfomance monitoring):在沒有任何可用性能數據的情況下,先進行性能的監控。 性能

原创 java 文件鎖

JDK 1.4引入了文件加鎖機制,允許我們同步訪問一個共享文件,不過,競爭同一文件的兩個線程有可能在不同的java虛擬機上,或者一個是java線程,

原创 閒聊ClassLoader的父加載器

Java使用類加載器來裝載字節碼到內存,以便後續用來創建對象調用方法等。就目前的JVM,要說這個ClassLoader,先要說到它的委託模型(有人將parent譯作雙親,雙親委派模型,竊以爲,很不準確,原因在說完這個委託模型之後講)。何爲

原创 TCP滑動窗口機制

TCP協議在能夠發送數據之前就建立起了“連接”。要實現這個連接,啓動TCP連接的那一方首先將發送一個SYN數據包。這只是一個不包含數據的數據包, 然後,打開SYN標記。如果另一方同時在它收到SYN標記的端口通話,它將發回一個SYN+AC

原创 JIT(動態編譯)和AOT(靜態編譯)編譯技術比較

  Java 應用程序的性能經常成爲開發社區中的討論熱點。因爲該語言的設計初衷是使用解釋的方式支持應用程序的可移植性目標,早期 Java 運行時所提

原创 線性排序算法

前言 插入,快速,合併,堆排序等基於比較的排序算法的最壞情況下界爲Ω(nlogn),最壞情況下都要進行Ω(nlogn)次比較。假設有一n個元素組成的數組(假設每個元素都不相等),那麼一共有n!排列組合,而且這n!排列組合結果都應該在決

原创 How to read the Garbage Collector output (for Sun JVM)

there are lots of applications to make the output of the *–verbose:gc* parameter easy to read, but still it may be usef

原创 小議同步IO :fsync與fdatasync

對於提供事務支持的數據庫,在事務提交時,都要確保事務日誌(包含該事務所有的修改操作以及一個提交記錄)完全寫到硬盤上,才認定事務提交成功並返回給應用層。 一個簡單的問題:在*nix操作系統上,怎樣保證對文件的更新內容成功持久化到硬盤?