原创 深刻理解Python中的元類(metaclass)

類也是對象 在理解元類之前,你需要先掌握Python中的類。Python中類的概念借鑑於Smalltalk,這顯得有些奇特。在大多數編程語言中,類就是一組用來描述如何生成一個對象的代碼段。在Python中這一點仍然成立: >>> cla

原创 垃圾回收算法

標記-清除法 問世最早的GC算法,分爲標記和清除2個階段. 標記 從根對象開始遞歸標記所有能訪問到的對象,這些對象就是活動的. 遞歸過程可能是DFS或BFS 清除 從堆首地址開始,遍歷每個對象的標誌位,如果不是活動的,就回收對象,

原创 pyflame入門

安裝 yum install autoconf automakegit clone https://github.com/uber/pyflamecd pyflame/./autogen.sh./configure (MacOS出錯Pyf

原创 一些智力題解析

在不考慮極端情況,比如割不斷,繩子過短沒法割等等情景下:一根繩子兩端拉直,割一刀只能成兩段,僅一種情況。如果割兩刀,則可以成三或者四段,有兩種情況。現在問:一根繩子允許你割10刀,有多少種情況? 最少:每次割一刀,只增加一段,就是不要把

原创 web網站優化

1.web前端優化 減少http次數,比如合併css javascript文件 使用瀏覽器緩存,靜態文件設置http頭Cache-Control和Expires屬性。更新靜態文件時,避免一次更新多個文件,應該一個文件一個文件間隔更新,

原创 python內存管理--分層分配

1.分層分配 層級 內容   字典,元祖,列表,字符串.....等等python對象 第3層 對象特有的內存分配器(比如聚合對象) 第2層 python對象分配器 第1層 python低級內存分配器 第0層 glibc的malloc 第-

原创 Python晦澀知識點

1.is, id,== is用來判斷兩個對象是不是同一個(同一個是指同一內存地址) >>> a = "sadasdasdasdas" >>> b = a >>> a is b True # 很好理解,a, b指向同一個地址 >>> a

原创 徹底解決 error: Unable to find vcvarsall.bat

1.windows上做Python開發,搭環境還真不比Linux容易。error: Unable to find vcvarsall.bat這個錯誤眼熟吧? 凡是安裝和操作系統底層密切相關的Python擴展,幾乎都會遇到這個錯誤。比如PI

原创 一行shell查看redis 連接數分佈

背景 線上某個redis連接數過萬,老報警,於是產生剛需:快速知道某個redis的client分佈. 用於快速找出連接數佔用最多的客戶端. shell 習慣python的老司機處理這點小事,那還不是手到擒來.可是偶爾不也想裝個逼,用sh

原创 python晦澀知識點(二)

聲明:一些很無聊的Python填空題,要是面試遇到,不要猶豫,一巴掌甩過去,然後說:“老子大老遠跑過來面試,衣服都溼了,你就給我看這個?”開玩笑啦,反正很不爽就是了 1.count和len >>> x, y = ???, ??? >>>

原创 正則表達式回溯

前幾天有小夥伴來求救說頁面上有一個 input 框,隨着用戶不斷輸入內容,頁面響應會越來越慢直到完全失去響應。 簡單溝通過後得知具體場景是這樣的: input 框中允許用戶輸入一連串逗號分隔的商品id在用戶輸入的過程中實時檢測用戶輸

原创 nginx location介紹

nginx location配置看看文檔都會,主要是記不住,寫下來方便查詢。主要是優先級要搞清楚,不然工程大了,匹配的莫名其妙。本文按優先級依次介紹。 總述:精確匹配(=) > 字符串打頭匹配(^~)  >  正則匹配(~或~*) >