本篇文章給大傢談談tf卡檢測工具,以及tf卡價格壹覽表的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
文章詳情介紹:
性能測試,python 內存分析工具 -memray
Memray是壹個由彭博社開發的、開源內存剖析器;開源壹個多月,已經收穫了超8.4k的star,是名副其實的明星項目。今天我們就給大傢來推薦這款python內存分析神器。
Memray可以跟蹤python代碼、本機擴展模塊和python解釋器本身中內存分配,可以生成多種不同類型的報告,幫助您分析python代碼內存使用情況。
工具的主要特點: 跟蹤每個函數的調用,能夠準確的跟蹤調用棧 能跟蹤c/c++庫的調用 分析速度很快 收集內存數據,輸出各種圖標 使用python線程 與本地線程壹起工作
可以幫助解決的問題: 分析應用程序中內存分配,發現高內存使用率的原因 查找內存泄漏的原因 查找導致內存大量分配的代碼熱點
memray安裝環境要求:python3.7+以上版本,linux係統(僅支持linux係統)
安裝:pip3 install memray
memray使用memray使用幫助python3 -m memray --help
參數 | 作用 |
run | 運行指定的應用程序並跟蹤內存使用情況 |
flamegraph | 在html報告中,用火焰圖方式,顯示內存使用情況 |
table | 在html報告文件中,用表格的方式顯示內存分析情況 |
live | 用實時屏幕顯示方式,顯示各種內存使用情況 |
tree | 在終端中,用樹形結構顯示內存使用情況 |
parse | 用debug模式,顯示每壹行的內存使用情況 |
summary | 匯總終端運行期間的內存使用概況 |
stats | 在終端中非常詳細的顯示內存使用情況 |
python3 -m memray run --help 獲取幫助
參數 | 作用 |
-o OUTPU,--output OUTPUT | 指定輸出結果到哪裏 |
--live | 啟動實時跟蹤會話模式 |
--live-remote | 啟動實時跟蹤會話並等待客戶端連接 |
--live-port LIVE_PORT, -p LIVE_PORT | 啟動實時跟蹤時要使用的端口 |
--native | 跟蹤C/C++堆棧 |
--follow-fork | 跟蹤腳本分叉的子進程中的分配 |
--trace-python-allocators | 記錄pymalloc分配器的分配情況 |
-q, --quiet | 運行時不顯示任何特定於跟蹤的輸出 |
-f, --force | 強制復購已有文件 |
--compress-on-exit | 跟蹤完成後使用 lz4 壓縮生成的文件 |
--no-compress | 不使用 lz4 壓縮生成的文件 |
-c | 作為字符串傳入的程序 |
-m | 將庫模塊作為腳本運行 |
python3 -m memray run xxx.py 直接分析某個py文件的內存使用情況,就會在當前路徑下生成壹個 ‘memray-py文件名.進程id.bin’ 的內存使用記錄文件。當然,也可以跟上-o outFiPath 指定輸出路徑。如果運行的py文件是模塊代碼,也可以使用-m xxx.py 方式運行。
‘memray-py文件名.進程id.bin’ 文件,可以通過 python3 -m memray flamegraph memray-py文件名.進程id.bin 轉換為壹份html-火焰圖報告
如上圖,從上往下,顯示了程序的調用過程,寬度,代表函數占用內存多少。
python3 -m memray run --native xxxx.py 會跟蹤分析python代碼中調用底層的C/C++函數消耗的內存情況
python3 -m memray run --trace-python-allocators xxx.py 跟蹤分析python程序內存分配器pymalloc的情況
這個看上去,和沒有加參數,效果差不多,但是,實際上是完全不壹樣的。這種方式,會深入跟蹤內存分配,python常見的內存分配器有四種(malloc、free、realloc、pymalloc),這個參數,在python出現內存溢出時,就非常有用了。但是,加了這個參數,運輸速度會變慢,收集的數據生成的文件會更大。
python3 -m memray run --live xxx.py 用實時屏幕模式顯示跟蹤的內存數據。
默認時,根據Total memory的數據從大到小,往下排列;按"O",可以根據私有內存從大到小,排序顯示內存對象;按“A”,則根據內存分配次數量從高到底排序。
有了這個統計數據,就能快速定位到哪些對象,占用內存大,哪些對象被頻繁的分配內存。這些對象,就是重點分析對象。
flamegraph命令---生成火焰圖報告python3 -m memray flamegraph --help 獲取幫助
python3 -m memray flamegraph xxx.bin 生成火焰圖
table命令--生成表格報告python3 -m memray table --help 獲取幫助
python3 -m memray table xxxx.bin 把bin文件轉換為表格報告
tree命令--生成樹形報告python3 -m memray tree --help 獲取幫助
python3 -m memray tree xxxx.bin 把bin文件轉換為樹形報告
summary命令--生成概要報告python3 -m memray summary --help 獲取幫助
python3 -m memray summary xxxx.bin 對bin文件進行分析,生成概要報告
stats命令---生成詳細統計報告python3 -m memray stats --help 獲取幫助
python3 -m memray stats xxxx.bin 對bin文件進行分析,生成詳細報告
超詳細!萬象奧科親測8款不同品牌TF卡性能測試
TF卡作為壹種微型存儲卡,可以在手機、平板、相機等設備中存儲數據。不同的TF卡有不同的容量和速度,可以滿足不同的需求。而對於開發闆來說,TF卡的讀寫速度也直接影響了傳輸數據的快慢。如果TF卡的讀寫速度過慢,可能會導致數據丟失,係統崩潰,文件損壞等問題。因此,選擇壹款高品質、高規格、高兼容性的TF卡是很必要的。
那如何測試TF卡在開發闆上的讀寫速度呢?本文將使用萬象奧科HD-G2UL-EVM評估闆測試不同TF卡在該開發闆下的讀寫性能表現。
測試對象HD-G2UL-EVM評估闆是壹款基於RZ/G2UL微處理器的工業級核心闆,配備Cortex®-A55 (1 GHz) CPU、16位DDR3L/DDR4、雙路USB2.0、支持256GB擴展TF卡槽等豐富的接口和多種視頻接口,適用於工業現場和嵌入式設備。
測試結果表1 測試結果
TF卡 | 寫 | 讀 |
閃迪C10 128GB | 15.9MB/s | 55.4MB/s |
閃迪C4 16GB | 2.2 MB/s | 17.0MB/s |
愛國者U3 32GB | 1.0 MB/s | 8.9 MB/s |
金士頓C10 32GB | 16.6MB/s | 58.2MB/s |
金士頓C4 32GB | 3.5 MB/s | 17.6MB/s |
海康威視C10 16GB | 3.8MB/s | 18.4MB/s |
金士頓C10 64GB | 2.0 MB/s | 9.5 MB/s |
金士頓C4 8GB | 807 kB/s | 14.6MB/s |
壹般來說,寫入速度和讀取速度越高,TF卡的性能越好,但價格可能越高,從表1中可以看出,閃迪C10 128GB TF卡具有最高的寫入速度和讀取速度,不考慮預算的話牠是最佳選擇。如果不需要容量大的,金士頓C10 32GB TF卡也是壹個不錯的選擇。
測試原理dd命令
Linux dd 命令用於讀取、轉換並輸出數據。
dd 可從標準輸入或文件中讀取數據,根據指定的格式來轉換數據,再輸出到文件、設備或標準輸出。
測試指令如下:
寫速度測試:dd if=/dev/zero of=$mount_point/largefile bs=16k count=16384 oflag=direct
清除頁麵緩存:sync && echo 3 > /proc/sys/vm/drop_caches
讀速度測試:dd if=$mount_point/largefile of=/dev/null bs=16k count=16384
dd的相關解釋
if 代表輸入文件。如果不指定 if,默認就會從 stdin 中讀取輸入。
of 代表輸出文件。如果不指定 of,默認就會將 stdout 作為默認輸出。
bs 代表字節為單位的塊大小。
count 代表被復制的塊數。
/dev/zero 是壹個字符設備,會不斷返回 0 值字節(\0)。
測試過程硬件準備HD-G2UL-EVM評估闆(512MB+8GB)、網線、Type-c數據線、5V電源適配器、電腦主機。
測試準備準備5種以上不同規格品牌TF卡選取測試,如表2所示。
表2 TF卡
測試環境讀寫測試以讀寫FAT32文件係統為例,寫讀大小為256MB的文件。
閃迪C10 128GB
進行寫性能測試...預計寫入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 16.8738 s, 15.9 MB/s
清除緩存...
進行讀性能測試...預計讀256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 4.84136 s, 55.4 MB/s
測試時長: (0 hours 0 minutes 33 seconds.)
測試完成!
閃迪C4 16GB
進行寫性能測試...預計寫入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 120.232 s, 2.2 MB/s
清除緩存...
進行讀性能測試...預計讀256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 15.7637 s, 17.0 MB/s
測試時長: (0 hours 2 minutes 23 seconds.)
測試完成!
愛國者U3 32GB
進行寫性能測試...預計寫入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 259.502 s, 1.0 MB/s
清除緩存...
進行讀性能測試...預計讀256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 30.0122 s, 8.9 MB/s
測試時長: (0 hours 5 minutes 2 seconds.)
測試完成!
金士頓C10 32GB
進行寫性能測試...預計寫入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 16.1571 s, 16.6 MB/s
清除緩存...
進行讀性能測試...預計讀256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 4.61386 s, 58.2 MB/s
測試時長: (0 hours 0 minutes 28 seconds.)
測試完成!
金士頓C4 32GB
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 76.8466 s, 3.5 MB/s
清除緩存...
進行讀性能測試...預計讀256MB大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 12.5822 s, 17.6 MB/s
測試時長: (0 hours 1 minutes 35 seconds.)
測試完成!
海康威視C10 16GB
進行寫性能測試...預計寫入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 71.558 s, 3.8 MB/s
清除緩存...
進行讀性能測試...預計讀256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 14.6249 s, 18.4 MB/s
測試時長: (0 hours 1 minutes 35 seconds.)
測試完成!
金士頓C10 64GB
進行寫性能測試...預計寫入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 131.653 s, 2.0 MB/s
清除緩存...
進行讀性能測試...預計讀256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 28.3016 s, 9.5 MB/s
測試時長: (0 hours 2 minutes 51 seconds.)
測試完成!
金士頓C4 8GB
進行寫性能測試...預計寫入256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 332.638 s, 807 kB/s
清除緩存...
進行讀性能測試...預計讀256M大小的largefile文件
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 18.3718 s, 14.6 MB/s
測試時長: (0 hours 5 minutes 58 seconds.)
測試完成!