Latest Posts • cenalulu's Tech Blog
前言:博主在剛接觸Python的時候時常聽到GIL這個詞,並且發現這個詞經常和Python無法高效的實現多執行緒劃上等號。本著不光要知其然,還要知其所以然的研究態度,博主蒐集了各方面的資料,花了一週內幾個小時的閒暇時間深入理解了下GIL,並歸納成此文,也希望讀者能通過次本文更好且客觀的理解GIL。
相關推薦
Latest Posts • cenalulu's Tech Blog
July 18, 2015 前言:博主在剛接觸Python的時候時常聽到GIL這個詞,並且發現這個詞經常和Python無法高效的實現多執行緒劃上等號。本著不光要知其然,還要知其所以然的研究態度,博主蒐集了各方面的資料,花了一週內幾個小時的閒暇時間深入理解了下GIL,並歸納
記錄一段生成素數python程式碼的調優過程 • cenalulu's Tech Blog
簡介:本文主要記錄了博主對一段使用python實現的素數生成程式碼的不斷優化過程。 背景:最近在刷Project Euler的題目,刷到第十題(計算2百萬以下素數的和)的時候發現之前的素數生成程式碼效率太低導致幾分鐘都出不來。於是通過不斷的調優,終於得到一個能在秒級算出2百萬以內的素
全域性唯一ID生成方案對比 • cenalulu's Tech Blog
彙總了各大公司的全域性唯一ID生成方案,並做了一個簡單的優劣比較 背景:在實現大型分散式程式時,通常會有全域性唯一ID(也成GUID)生成的需求,用來對每一個物件標識一個代號。本文就列舉了博主收集的各種全域性唯一ID生成的方案,做一個簡單的類比和備忘。 GUID的基本需求 一
為Bash和VIM配置一個美觀奢華的狀態提示欄 • cenalulu's Tech Blog
本文將詳細介紹在Mac環境下安裝powerline的方式 什麼是powerline 如果你不是通過搜尋引擎搜到這篇文章的話,也許你還沒有聽說過powerline。而你又恰巧是個*UNIX黨,或者VIM黨的話,那麼強烈建議你瞭解並使用powerline。powerline是一個statel
MySQL入門書籍和方法分享 • cenalulu's Tech Blog
本文羅列了一些適用於MySQL及運維入門和進階使用的書籍。 背景:各大論壇上總是有很多同學諮詢想學習資料庫,或者是為入行DBA做些準備。幾年來作為一個MySQL DBA的成長過程有一些積累和感悟,特此拿出來和大家分享。 申明:本篇部落格原來對每一本書都附上了ppurl的下載
為什麼陣列標號是從0開始的 • cenalulu's Tech Blog
本文通過彙總一些網上搜集到的資料,總結出大部分程式語言中陣列下標從0開始的原因 背景 我們知道大部分程式語言中的陣列都是從0開始編號的,即array[0]是陣列的第一個元素。這個和我們平時生活中從1開始編號的習慣相比顯得很反人類。那麼究竟是什麼樣的原因讓大部分程式語言陣列都遵從了這個
關於Relay Log無法自動刪除的問題 • cenalulu's Tech Blog
本文介紹了一次運維實踐中relay-log長期無法自動刪除的原因和解決過程 背景: 今天在運維一個mysql例項時,發現其資料目錄下的relay-log 長期沒有刪除,已經堆積了幾十個relay-log。 然而其他作為Slave伺服器例項卻沒有這種情況。 現象分析 通過收集到的
Tock策略簡介 • cenalulu's Tech Blog
背景:最近在定位一次硬體升級對資料庫效能影響的故障的時候看了挺多Intel的白皮書。其中Intel的tic-toc策略(又稱為:tick-tock)很有趣,特別幾張roadmap畫得很贊。因此摘錄在此,已做備忘。 什麼是tic-toc tic-toc是Intel從2008年引入的一個C
MySQL timeout相關引數解析和測試 • cenalulu's Tech Blog
MySQL中有兩個關於連線超時的配置項: wait_timeout和interactive_timeout。他們之間在某些條件下會互相繼承,那究竟這兩個引數會在什麼情況下起作用呢? 本文將會通過一些測試例項來證明總結兩者的相互關係。 引數介紹 interactive_timeout
Innodb單表資料物理恢復 • cenalulu's Tech Blog
本文將介紹使用物理備份恢復Innodb單表資料的方法 前言: 隨著innodb的普及,innobackup也成為了主流備份方式。物理備份對於新建slave,全庫恢復的需求都能從容應對。 但當面臨單表資料誤刪,或者單表誤drop的情況,如果使用物理全備進行恢復呢? 下文將進行詳
10分鐘學會理解和解決MySQL亂碼問題 • cenalulu's Tech Blog
本文將詳細介紹MySQL亂碼的成因和具體的解決方案 在閱讀本文之前,強烈建議對字符集編碼概念還比較模糊的同學 閱讀下博主之前對相關概念的一篇科普:十分鐘搞清字符集和字元編碼 MySQL出現亂碼的原因 要了解為什麼會出現亂碼,我們就先要理解:從客戶端發起請求,到MySQL儲存資料
MySQL Backup in Facebook • cenalulu's Tech Blog
本文將較為詳細的介紹Facebook對於MySQL資料庫的備份策略和方法 準備知識 在進入詳細介紹之前,先簡要介紹一些Facebook相關的架構關鍵字 python Facebook幾乎所有的資料庫自動化運維繫統都是通過python實現的,所有可文件化的手工操作都有
MySQL中行列轉換的SQL技巧 • cenalulu's Tech Blog
詳細介紹MySQL中用SQL實現行列轉換的技巧 行列轉換常見場景 由於很多業務表因為歷史原因或者效能原因,都使用了違反第一正規化的設計模式。即同一個列中儲存了多個屬性值(具體結構見下表)。 這種模式下,應用常常需要將這個列依據分隔符進行分割,並得到列轉行的結果。 表資料:
Project Euler第一階段刷題總結 • cenalulu's Tech Blog
本文是博主對於用Python進行Project Euler第一階段刷題的總結和一些感悟 背景:為了更好的學習Python,博主從2015-01-01開始進行Project Euler的刷題。至今已經完成了兩個階段(50題)。下面是兩階段以來的一些經驗和感悟 Project E
線上程式設計挑戰網站列表 • cenalulu's Tech Blog
列舉了目前所有已知線上程式設計挑戰網站的列表和他們的一些活動。對於coding及演算法的初學者和愛好者來說都是不錯的去處。 本文翻譯自:(http://www.mathblog.dk/programming-challenges/) 以下網站名稱均可直接點選跳轉到該網站首頁
Huge Page 是否是拯救效能的萬能良藥? • cenalulu's Tech Blog
本文將分析是否Huge Page在任何條件下(特別是NUMA架構下)都能帶來效能提升。 準備知識 在閱讀本文之前,需要讀者至少了解以下基礎知識 NUMA的基本概念,具體可參見部落格之前的科普介紹 目前Linux基於多核CPU繁忙程度的執行緒排程機制,參看Chip
Python中避免在給多維陣列賦值之前判斷key是否存在的方法 • cenalulu's Tech Blog
Python在使用二維及多維陣列(dict)時,每次賦值之前都需要判斷一維及較小維度上的key是否存在。本文將介紹對於這種問題的解決方案 背景 Python中可以使用dict資料型別來實現二維及多維陣列。但是在對dict型別的多維陣列賦值時,相較其他語言需要預先額外判斷一次低維度的k
我是如何拿到Facebook Offer的 • cenalulu's Tech Blog
本系列文章將總結和分享我順利通過Facebook面試並獲得Offer的經歷和經驗 寫在前面 2014年10月,我有幸通過了Facebook的電面,參加了在Palo Alto的on-site面試,並最終成功拿到了offer。期間有很多經歷的東西想要記錄下來,以做備忘。同時在當時準
你應該知道的浮點數基礎知識 • cenalulu's Tech Blog
本文從一個有趣而又令人意外的實驗展開,介紹一些關於浮點數你應該知道的基礎知識 一個有趣的實驗 本文從一個有趣而詭異的實驗開始。最早這個例子博主是從 Stackoverflow上的一個問題中看到的。為了提高可讀性,博主這裡做了改寫,簡化成了以下兩段程式碼: #include <
關於MySQL密碼你應該知道的那些事 • cenalulu's Tech Blog
本文將介紹MySQL使用者密碼相關的一些知識,以及5.6中對於安全性的一些改進 MySQL使用者密碼是如何生成和儲存的 如果你已經接觸MySQL一段時間了,那麼想必你一定知道MySQL把所有使用者的使用者名稱和密碼的密文存放在mysql.user表中。大致的形式如下: mysql [l