原创 性能調優

一、系統性能定義 讓我們先來說說如何什麼是系統性能。這個定義非常關鍵,如果我們不清楚什麼是系統性能,那麼我們將無法定位之。我見過很多朋友會覺得這很容易,但是仔細一問,其實他們並沒有一個比較系統的方法,所以,在這裏我想告訴大家如何系統地來定

原创 模塊參數與符號

模塊參數 module_param(name,type, perm); module_param_array(name, type, num, perm); perm表示該參數在sysfs文件系統中所對應的文件節點的屬性;你應該使用<

原创 海量數據處理常用數據結構及方法

大數據時代,海量數據的分析也成爲了各大公司面試的熱點問題。本文總結了幾種常用的方法。   數據結構   bitmap   適用範圍:可進行數據的快速查找,判重,刪除,一般來說數據範圍是int的10倍以下 基本原理及要點:使用bit數組來表

原创 一張圖說明Linux內核

這是很久以前從網上找到的一張圖片,近來看看,挺有意思的,就發出來吧。   點贊 收藏 分享 文章舉報 IT_Linux 發佈了77 篇原創文章 · 獲贊 13 · 訪問量 1

原创 自旋鎖詳解

自旋鎖 自旋鎖(spinlock)是用在多個CPU系統中的鎖機制,當一個CPU正訪問自旋鎖保護的臨界區時,臨界區將被鎖上,其他需要訪問此臨界區的CPU只能忙等待,直到前面的CPU已訪問完臨界區,將臨界區開鎖。自旋鎖上鎖後讓等待線程進行忙

原创 存儲性能瓶頸的成因、定位與排查

介紹 企業數據存儲性能瓶頸常常會發生在端口,控制器和磁盤,難點在於找出引起擁塞的單元,往往需要應用多重工具以及豐富的經驗來查找並解決。 本文詳細闡述存儲瓶頸發生最常見的四種情況,可能發生的擁塞點,需要監控的參數指標,以及部署存儲系統的

原创 RTTI和類型轉換

RTTI 通過運行時類型識別(RTTI),程序能夠使用基類的指針或引用來檢索這些指針或引用所指對象的實際派生類型。通過下面兩個操作符提供 RTTI: 1. typeid 操作符,返回指針或引用所指對象的實際類型。 2. dyn

原创 來自騰訊無線研發的經驗分享

在2014年4月11日的騰訊分享日活動上, 來自騰訊MIG的移動互聯網事業羣運營總監/T4專家,負責運營QQ手機瀏覽器、騰訊PC瀏覽器、騰訊手機安全管家、騰訊電腦管家產品的劉昕介紹了移動無線產品研發中的“一秒鐘法則”。本文根據該演講內容整

原创 boost智能指針之shared_ptr和weak_ptr

std::auto_ptr很多的時候並不能滿足我們的要求,比如auto_ptr不能用作STL容器的元素。boost的smart_ptr中提供了4種智能指針和2種智能指針數組來作爲std::auto_ptr的補充。   shared_ptr

原创 boost.any實現任意類型存儲

當你需要一個可變的類型時,有三種可能的解決方案:無限制的類型,如 void*. 這種方法不可能是類型安全的,應該象逃避災難一樣避免它。可變的類型,即支持多種類型的存儲和獲取的類型。支持轉換的類型,如字符串類型與整數類型之間的轉換。Any實

原创 Linux程序調試利器strace

調用 strace  [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...  [ -ofile ] [ -ppid ] ...  [ -sstrsize ] [ -uusername ] [ -E

原创 自旋鎖透徹分析

自旋鎖與互斥鎖有點類似,只是自旋鎖不會引起調用者睡眠,如果自旋鎖已經被別的執行單元保持,調用者就一直循環在那裏看是否該自旋鎖的保持者已經釋放了鎖,"自旋"一詞就是因此而得名。   由於自旋鎖使用者一般保持鎖時間非常短,因此選擇自旋而不是睡

原创 結構體中的指針與零長度數組

0長度的數組在ISO C和C++的規格說明書中是不允許的,但是由於gcc 預先支持C99的這種玩法,所以,“零長度數組”在gcc環境下是合法的。 先看下面兩個例子。 pzeroLengthArray.c #include <stdio.h

原创 查看進程內存映像命令pmap

名稱:        pmap - report memory map of a process(查看進程的內存映像信息) 用法        pmap [ -x | -d ] [ -q ] pids...        pmap -V

原创 洗牌算法分析總結

先定義出一個基本概念:究竟洗牌算法的本質是什麼?也就是說,什麼樣的洗牌結果是“正確”的?一個比較確切的定義,在經過洗牌函數後,如果能夠保證每一個數據出現在所有位置的概率是相等的,那麼這種算法是符合要求的。在這個前提下,儘量降低時間複雜度和