發表文章

R RStudio 安裝教學

圖片
起因 因為之前在 Ubuntu 上安裝 RStudio 時遇到一點問題,便把過程記錄下來,並讓其他人參考 安裝過程 (2017 / 06 /27 安裝) 環境需求 硬體需求 至少 1GB RAM 軟體需求 Ubuntu 17.04 要有root or sudo 的權限

ycmd-install

什麼是ycmd ycmd原本是在vim上的You-Complete-Me, 而後作者把補全部分單獨分離出來做為一個後端,使其他編輯器也能享受這種神級的補全系統. 我目前主要是用它來補全c++,但是他還能夠補全像是go,JS之類的語言,可說是十分全能

gdb簡易教學

簡介 gdb 是一種除錯的工具,經常在 Linux 環境中被使用

Python 簡略教學

安裝 請先到 Anaconda 安裝Anaconda (建議 Python 3.x 版本) 再來到 Pycharm 安裝 IDE (Community 版本是免費的) 安裝完成後, 打開 Pycharm 新增一個 .py 檔, 並輸入 print(“Hello World”), 之後執行看看, 看看有沒有印出 Hello World

小型聊天機器人www

最近使用了做了一個小機器人 故放上來供大家圍觀(X 目前指令有 /cv - 電腦視覺化 /google - Google 搜尋

[emacs] spacemacs on windows

最近想要學一下 lisp 並有個能在 Shell 上跑的編輯器,所以便找到了 emacs ,而其中最有名的設定檔便是 spacemacs 了 首先,按照 sapcemacs 的 教學 ,她官網上推薦的是  emacs-w64 project  這個計畫的  stable build 版本,下載回來之後並安裝 安裝 the_platinum_searcher  這個軟體 最後 用 git  把spacemacs下載下來並放到 C:\Users\user\AppData\Roaming\.emacs.d 這個路徑就可以了 (注:因為我沒有設定HOME這個Path .emacs.d 是在這邊) 如果有遇到問題可以到 FAQ  這邊查詢 另外,附上我在過程中查到的其他教學 1.  Emacs on Windows 2. Emacs 101 另外,根據前輩的說法 1. spacemacs 目前在 Windows 只要解決開啟時 Ispell 要換成 Aspell (要去下載) 就所有套件應該都沒問題, 快捷鍵這是個好問題.... 2. 一開始會蠻不適應的, 要把 Ctrl 換到 Caps(我覺得這是看個人啦) 3. 剛開始如果沒有特別的工作需求, 可以先多多用 org 寫筆記 (也就是開啟一個檔案副檔名叫做 .org ) , 熟練檔案指令並養成開啟 Emacs 習慣, 然後有時候忘記就看 Emacs101 4.接著慢慢把工作需求帶入, 不用特別逼自己, 可以看 learning spacemacs in 21 days 先看前面 6 集 應該是 11-12 集到 16-17 集可以慢慢看, 主要講 buffer 和 file 還有 layout 的使用方法, 如果時間緊迫18 之後可以先不用看, 會啟發你很多想法, 讓你把自己的工作結合進來 最後附上emacs 101 的優質文章 收藏

[隨筆] 多執行緒 vs 多進程

圖片
最近因為遇到了這方面的問題,便去求助了一下google大神跟認識的大神 便順手把這篇記錄下來,當作備忘使用 首先,先說一下他們的英文名稱 multi-thread  => 多執行緒 multi-process => 多進程 大致上而言,在排程部分,multi-process是比multi-thread更消耗資源的東東(但也因此速度更快),因為multi-thread是全部放在一個process裡面,但multi-process則不是,所以在系統排程時會導致multi-process比multi-thread消耗更多資源。 在記憶體部分,multi-process的記憶體是分開的,所以要溝通的話必須調用系統函數而multi-thread因為他的記憶體都是放一起的,所以不用,但也不是說multi-thread沒有缺點,因為如果他同時對同一個區塊做io的話會造成混亂(如下圖所示),所以這時候便要加上mutex lock來鎖住他,不讓multi-thread能夠同時io,也就是說,當一個記憶體區塊被使用時,其他thread不能去碰它,看是要等他讓cpu空轉還是做其他事情(這也是造成效率高或低的主因,空等太多跟別人比起來會很慢),此外multi-process是每個process都有一份程式碼,但multi-thread則是所有thread都共用一份,而這在大的程式碼中最明顯,如果記憶體吃不消那就會被放到swap裡面,最後導致所有process都在等swap的io。 此外,如果multi-process其中一個當掉其他的還是能夠正常運行(雖然有些小問題,像是像是orphan process(parent process 當掉)或 zombie process (child process當掉,parent process就成了zombie)),但是如果multi-process當掉則是全部都被關掉(因為OS在處理時是以process下去看),舉例而言,就像chrome是多個process所以一個分頁當掉沒差,其他分頁還能正常運作 總而言之 速度方面 multi-process > multi-thread 資源消耗方面 multi-process > multi-thread 記憶體消耗方面 multi-...