前言
開發(fā)環(huán)境误甚,實驗/測試/性能分析環(huán)境,輪子和開發(fā)工具都只是工具而已舅桩,與工程/學術能力關系不太大,但是了解基本的這些東西雨膨,可以讓我們的工作/科研/學習生活更輕松有趣擂涛,哈哈 :smile: 。
開發(fā)環(huán)境
操作系統(tǒng)我喜歡用 Fedora 聊记。我喜歡用Linux作為工作環(huán)境主要是因為:其方便的包管理器和更簡潔的內(nèi)核設計撒妈,比學windows內(nèi)核的代價要小很多,配置開發(fā)環(huán)境也更容易排监。
寫C++小程序狰右,編輯器可以使用 Atom ,加上各種插件舆床,內(nèi)置terminal的集成棋蚌,可以各種語法高亮(包括Cmake嫁佳,C++),基于 clang 的靜態(tài)代碼檢查谷暮,支持分多個Panel比較代碼蒿往。
寫C++項目,Linux下用一款 Jetbrain 公司推出的 Clion, 然后用 Cmake 作為Build工具湿弦,來生成對應的Makefile瓤漏,編譯器用gcc5.x或6.x。Clion有很多插件可以安裝颊埃,挺方便的蔬充。
如果項目需要用 Cuda,盡管 Clion 對 Cuda 集成不太好班利;但是我們可以用 Nvidia 在 Eclipse 基礎上的 Nsight(在裝了cuda toolkit自帶的) 饥漫,有一點好處是可以用它來進行程序的profiling。
實驗/測試/性能分析環(huán)境
Terminal的shell使用 oh-my-zsh 罗标,然后可以裝個 the-fuck , 用起來比較爽趾浅。連學校(HKUST)Itsc管理的Gpu或者Mic服務器跑實驗,直接ssh就可以了馒稍,都裝的CentOS。
調(diào)試C++程序浅侨,我還是用gdb纽谒。Clion制作的基于gdb進行Debug的Gui也挺不錯的,方便了我們Debug如输,相關視頻鏈接鼓黔。
C++程序性能Profiling,用 Intel Vtune Amplifier 來看cache miss, memory bottleneck分析不见,不過只有一個月試用期澳化,如果過期需要重裝。
寫完C++程序稳吮,然后打開 Pycharm 寫些Python(先裝上 Anaconda 和 Pip )來跑跑實驗缎谷,處理文件,畫圖灶似。當然Python的強大社區(qū)證明了python不僅僅只有這些用處列林,只不過有些用途我還沒有接觸。
輪子和開發(fā)工具
記得利用的基本庫酪惭,C++14標準定義的STL希痴,最新版本Boost,然后有什么其他需要的組件可以在Github上搜春感,這個鏈接總結了許多砌创,awesome-cpp 虏缸。
其他主要還有一些并行計算的基于 Pthread 封裝或者基于 Gpu模型 封裝的庫會用到,雖然我現(xiàn)在還沒怎么用嫩实,比如 Intel TBB 刽辙, Nvidia ModernGPU 等,具體的話可以參考下 我寫的高性能程序開發(fā)庫總結舶赔。
其他
寫C++程序的時候扫倡,代碼的版本管理靠git, 并且使用下學生的無限免費私有倉庫。
跟老板匯報工作進度前竟纳,可以用Markdown寫點總結放Github私有倉庫上撵溃。
:smile: 哈哈就這么多,平時常用的東西锥累。