1. 程式人生 > >Qt---log日誌框架(2)從效能考慮檔案操作

Qt---log日誌框架(2)從效能考慮檔案操作

做了一個小的測試工具,可以檢視log,點選檢視log,會選擇系統預設的編輯器開啟log,同時就問了我一個問題,為什麼開啟log後,刪除檔案內的日誌,在產生的日誌就不能寫到日誌裡了?對於這個問題,是由於在寫入日誌的時候,只打開了一次log,對log做操作,破換了log,所以不能繼續寫入。要解決這個問題,只需要在寫入log時,每次開啟一次檔案即可。但是,隨之而來的問題便是頻繁的對檔案執行開啟操作與只打開一次檔案的效率有什麼差異?所以下面做了一個小測試。

分別對寫入檔案10萬次、100萬次,1000萬次,兩者所用時間的差異。

測試結果如下:

10萬次

開始寫入檔案log1

開啟一次檔案傳送所用的時間為: 0.234513

te.tv_usec: 1493280598136496

tv.tv_usec: 1493280597901983

開始寫入檔案log2

頻繁開啟檔案傳送所用的時間為: 0.691914

te.tv_usec: 1493280604584612

tv.tv_usec: 1493280603892698

100萬次

開始寫入檔案log1

開啟一次檔案傳送所用的時間為: 2.2169

te.tv_usec: 1493280901167297

tv.tv_usec: 1493280898950394

開始寫入檔案log2

頻繁開啟檔案傳送所用的時間為: 10.1719

te.tv_usec: 1493280916001532

tv.tv_usec: 1493280905829610

1000萬次

開始寫入檔案log1

開啟一次檔案傳送所用的時間為: 21.2031

te.tv_usec: 1493280994099891

tv.tv_usec: 1493280972896765

開始寫入檔案log2

頻繁開啟檔案傳送所用的時間為: 90.5125

te.tv_usec: 1493281090662242

tv.tv_usec: 1493281000149779

由此可見,頻繁開啟檔案的效率低於只打開一次檔案的效率,大約相差4-5倍。

此測試程式已上傳github:https://github.com/shangFangBaoJian/lianXuShuChuWenJian.git

相關推薦

Qt---log日誌框架2效能考慮檔案操作

做了一個小的測試工具,可以檢視log,點選檢視log,會選擇系統預設的編輯器開啟log,同時就問了我一個問題,為什麼開啟log後,刪除檔案內的日誌,在產生的日誌就不能寫到日誌裡了?對於這個問題,是由於在寫入日誌的時候,只打開了一次log,對log做操作,破換了log,所以不

Asp.net Security框架2

默認 隨機 async 技術分享 希望 win 認證 用戶認證 uget Asp.net 的Security框架除了提供Cookies,OAuth,ActiveDirectory等多個用戶認證實現,基本上已經滿足業務項目的開發需要了。 當需要實現OAuth2.0服務器端實現

我的第一個python web開發框架2——一個簡單的小外包

span 技術 進行 target 最好 自己 blog height 描述   第一部分說明   第一部分大概有20來章,主要講的是一些開發常識、開發前中後期準備內容、開發環境與服務器部署環境安裝設置、python基礎框架結構與功能等內容,代碼會比較簡單。   

ceph分布式存儲實戰2——0開始創建第一個ceph集群

moni name exceptio swap nor 都是 -c 監視 defined 一、在每臺節點的/etc/hosts文件中增加如下內容 192.168.89.101 ceph-node1 192.168.89.102 ceph-node2 192.168.89.1

selenium2學習:單元測試框架2

__init__ module asc 單獨 sci str mos ddt IT 1.4 Discover更多測試用例 discover(start_dir,pattern=‘test*.py‘,top_level_dir=None) 找到指定目錄下所有測試模塊,

多研究些架構,少談些框架 2 :微服務和充血模型

方法 平時 是把 小系統 生涯 過程 語句 小結 大量 上篇我們聊了微服務的DDD之間的關系,很多人還是覺得很虛幻,DDD那麽復雜的理論,聚合根、值對象、事件溯源,到底我們該怎麽入手呢? 實際上DDD和面向對象設計、設計模式等等理論有千絲萬縷的聯系,如果不熟悉OOA、OOD

使用XWAF框架2——上傳檔案

       XWAF提供了上傳檔案的HttpFileUploader工具類,具備強大的多檔案上傳、檔案型別過濾、檔案大小限制、儲存目錄設定、檔名稱更改等功能,簡化了Web應用開發的程式設計工作。 它能同時解析表單引數和檔案域,不僅能夠將檔案儲存到

線程、進程2----- 計算機物理層面分析

height 示例 電路 14. 模塊 物理層 就是 最大線程數 運行 一、從計算機的發展說起: ① 真空管與穿孔卡片 輸入一個指令,輸出一個結果 ② 晶體管和批處理系統 攢成一大波輸入(批處理指令),然後順序計算 ③ 集成電路芯片和多道程序設計 開發出多道程序設

RobotFramework自動化測試框架2- RobotFramework語法

RobotFramework測試用例是由四部分組成的,下面就從這四個部分簡單介紹語法: 關鍵字表 *** Keywords *** 設定表 *** Settings *** 變量表 *** Variables *** 測試用例表 *** Testcases ***  

SpringMVC框架22.3 Validation校驗器

Validation校驗器 SpringMVC使用 JSR-303 校驗規範,使用是 Hibernate Validator 【1】設定環境: 1.導jar包; 2.在處理器介面卡中配置校驗器; 3.建立資原始檔(eg:CustomValiationMessages.properti

SpringMVC框架22.2 SpringMVC中Json(@RequestBody和@ResponseBody)

Json資料互動 1.SpringMVC解析Json加入Json解析包; SpringMVC預設使用 MappingJacksonHttpMessageConverter對 Json進行資料互動; 2.處理器介面卡中注入 MappingJacksonHttpMessageConverte

SpringMVC框架22.1 使用 SpringMVC上傳圖片

SpringMVC上傳圖片 1、配置圖片上傳解析器:SpringMVC中使用 commons-fileupload;(要匯入相應 jar包) 2、編寫 Controller方法; (springmvc.xml 檔案中配置圖片上傳解析器; 再在Controller的方法public Str

日誌框架--JDK Logging

前言    從jdk1.4起,JDK開始自帶一套日誌系統。JDK Logger最大的優點就是不需要任何類庫的支援,只要有Java的執行環境就可以使用。相對於其他的日誌框架,JDK自帶的日誌可謂是雞肋,無論易用性,功能還是擴充套件性都要稍遜一籌,所以在商業系統中很少直接使用。

Spark SQL 筆記(11)——實戰網站日誌分析2統計結果入庫

1 統計結果入庫 使用 DataFrame API 完成統計分析 使用 SQL API 完成統計分析 將結果寫入 MySQL 資料庫 1.1 調優點 分割槽欄位的資料型別的調整 https://

C++ 多執行緒框架 2:Mutex 互斥和 Sem 訊號量

互斥和訊號量是多執行緒程式設計的兩個基礎,其原理就不詳細說了,大家去看看作業系統的書或者網上查查吧。 對於互斥的實現,無論什麼作業系統都離不開三個步驟 1.初始化互斥鎖 2.鎖操作 3.解鎖操作 對於不同的系統只是實現的函式有一些不同而已,但是功能其實都大同小異,在

編碼2位元組理解UnicodeUTF8/UTF16) 位元組理解UnicodeUTF8/UTF16)

https://www.cnblogs.com/zizifn/p/4716712.html 從位元組理解Unicode(UTF8/UTF16)   如果你不知道或者不瞭解什麼是Unicode/UTF8/UTF16,請詳細閱讀這篇文章(這也是這篇博文的先決條件): 學點編碼知識又不會死:Uni

機器學習----SVM2原始問題到對偶問題的轉換

SVM的水真是太深了,只能一點一點的解決了,今天這篇部落格簡單講解SVM的目標函式從原始問題到對偶問題的轉換。在這裡再給大家一個大牛的部落格連結:http://blog.pluskid.org/?p=685 1、轉化對偶問題 上篇部落格中我們得到的目標函式: (1) 我們在

android MVVM開發框架——2DataBinding 應用於ListView

1,listview佈局 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/andro

logback日誌框架轉發

轉自:https://www.cnblogs.com/EasonJim/p/7800880.html說明:內容估計有些舊,2011年的,但是大體意思應該沒多大變化,最新的配置可以參考官方文件。一、logback的介紹Logback是由log4j創始人設計的又一個開源日誌元件。

Flask學習日誌2-第一個flask程式

# 從flask這個框架匯入flask這個類 from flask import Flask #初始化一個Flask物件 # Flask() # 需要傳遞一個引數 __name__ # 1.方便fla