原创 【vim】vim命令

vim的查找功能 在vim下要查找字符串: 一,全匹配: 1,從上往下查找,比如“string” :   /string 2,從下往上查找,比如“string” : ?string    二,模糊匹配(正則表達式) 1,. :通配1個字符

原创 【內存】C/C++ 自己實現簡單的內存泄漏檢測工具

目錄 C++語言實現 C語言實現 學習練習用,真正檢測內存泄漏最好還是 藉助專門的工具。 C++語言實現 思路: 1.重載operator new/new[ ] 與 operator delete/delete[ ], 並藉助雙向鏈表結構

原创 【調度】一個著名的任務調度系統是怎麼設計的?

  實習生張大胖   這是個代碼寫得很爛的電商系統,只要運行一段時間,服務器就會出現Out Of Memory。   別人都忙得四腳朝天,於是實習生張大胖被抓了壯丁去研究爲什麼會出現OOM。   剛入行的張大胖技術水平一般,“裝模作樣”地

原创 【網絡編程】Linux tcpdump命令詳解---未消化

原文:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a networ

原创 【Wireshark 】實戰!我用 Wireshark 讓你“看見“ TCP (學習到TCP 流量控制)

原文:https://www.cnblogs.com/xiaolincoding/p/12922927.html 前言   “哈?啥是大白鯊?” 咳咳,主要是因爲網絡分析工具 Wireshark 的圖標特別像大白鯊頂部的角。 不信你看

原创 【C++11】C++ STL(面試複習整理-2.0)

1、六大組件介紹 STL六大組件 容器:數據結構,用來存放數據 算法:常用算法 迭代器:容器和算法之間的膠合劑,“範型指針” 仿函數:一種重載了operator()的類,使得這個類的使用看上去像一個函數 配置器:爲容器分配並管理內存 適配

原创 【C++11】C++智能指針循環引用問題分析

C++11中引入了三種智能指針,分別是shared_ptr、weak_ptr和unique_ptr 智能指針的作用 智能指針可以幫助我們管理動態分配的堆內存,減少內存泄漏的可能性 手動管理堆內存有引起內存泄漏的可能,比如這段代碼 try

原创 【智能指針】shared_ptr基本用法

頭文件 shared_ptr需要頭文件#include <memory> 聲明方法 //way1 auto sp1 = std::make_shared<int>(5); //way2 int* p1 = new int[3]; me

原创 【調度】操作系統中調度算法(FCFS、RR、SPN(SJF)、SRT、HRRN)

決策模式 決策模式說明選擇函數在執行的瞬間的處理方式,通常分爲以下兩類: 非搶佔:一旦進入運行狀態,就不會終止直到運行結束。 搶佔:當前正在運行的進程可以被打斷,並轉移到就緒態。  一個調度算法是否能搶佔,對進程的順序有着極大的影響。 先

原创 【Sys】C++怎樣讀取文件纔有最快的速度?

知乎網友建議 一個知乎網友劉縉的觀點: 順序讀大文件這個場景,內核優化過,你需要做的就是不要亂搞影響內核工作。老老實實用fread讀。不會madvise別隨便mmap,用了madvise也不會比fread更快。什麼異步IO,多線程調rea

原创 【TCP】計算機網絡第32講-TCP的流量控制(TCP滑動窗口)

非常好的教程 計算機網絡第32講-TCP的流量控制(計算機網絡簡明教程及仿真實驗) https://www.bilibili.com/video/BV1Lb411G7J1?from=search&seid=1084744905476550

原创 【協程】linux進程-線程-協程上下文環境的切換與實現---未消化

原文:https://blog.csdn.net/runner668/article/details/80512664 一:進程-線程-協程簡介 進程和線程的主要區別是:進程獨享地址空間和資源,線程則共享地址空間和資源,多線程就是多棧。

原创 【B/S】瀏覽器地址欄輸入URL,按下回車後發生了什麼

URL後步驟概覽 在地址欄輸入URL後 查詢ip地址 dns解析(瀏覽器是不能識別url地址的,需解析成ip地址), 建立tcp連接,(tcp三次握手) 發送Http請求, 服務器進行處理並返回Http報文, 瀏覽器渲染頁面, 斷開連接(

原创 【內存】內存檢測工具sanitize[內存泄漏、內存越界] VS valgrind

簡介 Sanitizers是谷歌發起的開源工具集,包括了AddressSanitizer, MemorySanitizer, ThreadSanitizer, LeakSanitizer,Sanitizers項目本是LLVM項目的一部分,

原创 【內存】C++內存泄露檢查的5個方法

  原文:https://developer.51cto.com/art/201504/470685.htm     在Linux平臺上 有valgrind可以非常方便的幫助我們定位內存泄漏,因爲Linux在開發領域的使用場景大多是跑服務