FTL中高性能的日志系统(CFFastTrace)

《深入浅出SSD》读书笔记——FTL主要业务 FTL为SSD内部控制器的固件,主要包含3个部分,前端支持主机端的SATA NVMe等协议,中端负责闪存块的管理,为适应主机端的需求和闪存的特性实现的一系列映射管理,垃圾回收,磨损平衡等功能,后端负责实现控制闪存的时序和部分ECC校验。以下结合书籍内容,对各块做一个简单介绍。 阅读详情

在软件的开发中,往往要用日志(比如 TRACE/ ATLTRACE 等)来跟踪程序的运行,方便查找错误,确认性能等。

但过少的日志不容易定位问题,过多的日志又难以分析,而且一个程序中多个线程的日志又交接在一起,又难于分析,等等诸多问题。

因此,我在FTL中使用了高性能的日志跟踪类 FastTrace,将各个线程的日志输出到单独的目的地(文件)中,查看时再使用专门的工具进行查看,并且可以按照日志等级、所在线程、关键字 等进行过滤,并支持任意顺序的排序。 而且,通过其中的 ElapseTime 项,可以快速地从宏观角度定位出程序的性能瓶颈。


特点:

  1. 使用方便,只需简单的 #include "ftlbase.h" 后,即可使用 FTLTRACE / FTLTRACEEX 宏进行日志的输出,输出格式同 TRACE

  2. 输出可控。可通过 FAST_TRACE_OPTIONS 结构控制日志输出, 常用的有 bWriteToFile(控制是否生成文件,默认为FALSE,表示只在Output窗口输出), traceThreshold(控制输出等级,默认输出等级为 tlTrace, 由下到上依次为 tlDetail、tlInfo、tlTrace、tlWarning、tlError, 大于 traceThreshold 的日志才会输出);

  3.具有多种控制接口。 程序具有默认设置,可通过注册表(HKEY_CURRENT_USER\Software\FTL\<AppExeName> ) 更改, 最后可通过 CFFastTrace::SetTraceOptions 设置选项。以上的各种设置方式,后面的具有更高优先级,会覆盖之前的设置。

  4.有方便的实用工具LogViewer来显示日志(日后介绍)

Spi flash基于FAT的简单日志系统(FTL)设计         最近一直在想给自己做的简易Hmi组态屏做一个保证FAT的稳定层,也就是所谓的日志系统(好像听人说这类玩意有个名字叫做FTL,又叫擦写均衡算法,嘛,反正纠结名词不是我喜欢的做法,所以就叫FTL吧)。         首先我用的硬件是LPC1788+SDRAM+W25Q128的组合,软件用的是RT-Thread RTOS以及它的组件driversSpi框架和DFS文件系统,底层文件系... 阅读详情

相关推荐

排查单片机不工作的‘玄学’故障:从LDO选型、复位电路到焊接不良的完整避坑指南

本文深入剖析单片机不工作的常见硬件故障,从LDO选型、复位电路设计到PCB布局和焊接工艺,提供系统性排查方法。重点分析3.3V电源稳定性、LDO动态响应特性及复位电路设计要点,帮助工程师快速定位和解决嵌入式系统中的'玄学'故障,提升产品可靠性。

weixin_30655569的博客 387

ftlog 日志库使用教程

ftlog 日志库使用教程 项目介绍 ftlog 是一个高性能的异步日志库,旨在提供丰富的功能和灵活的配置选项。它支持多种日志级别、自定义时间戳格式、日志轮转和过期日志清理等功能。ftlog 适用于需要高吞吐量和低延迟日志记录的场景。 项目快速启动 安装 首先,将 ftlog 添加到你的 Cargo.toml 文件中: [dependencies] ftlog = "0.1.0&quot...

gitblog_00723的博客 453

大疆OcuSync vs 传统2.4GHz:深度拆解无人机图传射频模块的硬件差异

本文深度对比了大疆OcuSync与传统2.4GHz无人机图传射频模块的硬件差异,涵盖芯片组、天线系统、PCB设计、散热方案及生产测试等核心环节。重点解析OcuSync的全定制SoC芯片、智能MIMO天线阵列及精密PCB布局如何实现革命性性能提升,为无人机图传技术发展提供专业参考。

u5v6w7的博客 806

Freemarker日志优化输出

Freemarker错误日志优化

mjm_1251162714的博客 2080

利用ArcMap实现遥感图像语义分割标注的完整流程解析

本文详细解析了利用ArcMap进行遥感图像语义分割标注的完整工作流。从工程创建、数据导入、SHP文件创建,到实战勾画地物、要素转栅格,再到最终的裁剪对齐,提供了每一步的关键操作与避坑指南。该方法特别适合处理大尺寸、带地理坐标的遥感影像,能高效产出精准对齐的图像-标签对,为后续深度学习模型训练奠定可靠的数据基础。

gpu4optimizer的博客 1212

手把手教你用STM32CubeIDE移植Vector CCP驱动,实现与INCA的标定通信(附避坑指南)

本文详细介绍了如何在STM32CubeIDE环境下移植Vector CCP驱动,实现与INCA的标定通信。从开发环境准备、CAN外设配置到CCP协议栈移植和A2L文件生成,提供了完整的操作流程和常见问题解决方案,帮助工程师快速掌握基于CAN总线的标定技术。

weixin_28685287的博客 138

美团陶云霜:CRM平台建设实践(胶片)

陶云霜@美团到店事业部读完需要10分钟速读仅需 1 分钟前言 上一期 美团李超:交易平台建设实践(胶片)今日中生代技术文章由美团到店事业部@陶云霜分享。本文从业务介绍,难点挑战,架构实...

中生代技术 1435

Android性能优化之Android Profiler

在移动应用开发中,打造一个流畅、省电且不卡顿的用户体验是至关重要的。然而,随着应用功能的日益复杂,内存泄漏、CPU暴涨、网络卡顿以及电量消耗过快等问题常常化身为隐形杀手,悄悄吞噬着用户体验。为了帮助开发者精准定位并解决这些性能瓶颈,谷歌在Android Studio中集成了一款强大的一站式性能分析工具Android Profiler。Android Profiler作为Android Studio内置的实时数据可视化工具,支持运行在Android 5.0及更高版本的设备上。

xiangzhihong8的专栏 201

freemarker日志实现过程分析

freemarker有自己的log类,这是一个抽象类,具体的日志打印委托给classpath里面合适的日志jar包来执行,寻找合适日志jar的查找顺序是:Apache Log4J, Apache Avalon LogKit, JDK log。如果一个合适的日志实现类都没有找到,日志功能将被抑制,并会使用System.err打印出错误提示信息。如果我们想自己指定使用的日志类型,那么可以通过:Loge...

weixin_33834137的博客 219

AgentScope深入分析-ReActAgent

ReActAgent 是 AgentScope 框架中最核心的智能体实现,它完美诠释了"推理-行动"(Reasoning-Acting)循环的精髓。本文将深入分析 ReActAgent 的类继承关系、核心执行流程,以及状态管理、钩子机制、实时介入等关键技术点。通过阅读本文,你会理解智能体如何与模型交互、如何执行工具、如何处理中断,以及这些机制背后的设计考量。模块化:通过组合不同的组件(模型、格式化器、工具集、记忆)来构建智能体透明性:所有关键流程都对开发者可见,可以精确控制可扩展性。

842

Camera HAL 多线程管理详解

本文摘要:Camera HAL 采用双线程管理体系(CAMX与CHI-CDK)实现高效并发处理。CAMX ThreadManager负责HAL内部及框架交互,采用线程池+任务调度机制,将节点处理、回调等封装为Job异步执行;CHI ThreadManager专注于OEM定制逻辑,支持异步/同步两种作业模式。两套系统通过函数指针解耦但共享地址空间,共同实现硬件流水线的强实时性。文章详细解析了两者的类层次架构、核心数据结构及典型应用场景,并提供了问题排查的代码切入点,为Camera HAL开发与性能优化提供指导

DU_YULIN的博客 56

将指定的ftl模板输出到文件

import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import java.io.*; import java.util.HashMap; import java.util.Locale; impo...

weixin_33400820的博客 865

2025华为OD机试真题+全流程解析+备考攻略+面试技巧+机考经验分享+Java/python/JS/C++/C语言实现

本专栏包含华为 OD 机试最新的 A卷+B卷+C卷+D卷+E卷题库,为全网最全、最新题库,500+真题。每一篇文章都包含了题目描述、解题思路以及实现代码。同时免费提供最新的在线OJ 刷题系统。已有上百名小伙伴通过刷真题题库通过了华为od机考,拒绝一切形式的代考,替考行为!!!以下是本专栏详细内容介绍:本专栏提供在线OJ刷题系统:OJ题库OJ系统注册&使用教程:OJ使用教程其他专栏以及答疑介绍:50+ 高频面试手撕真题,已有上百位小伙伴高频认证。1:机试没过,半年的冷冻期。2:已经订阅过我专栏的同学,推荐新人

MISAYAONE的博客 2225

CSP-J初赛零基础备考指南:计算机基础、数据结构与算法手算突破

计算机软件能力认证入门级初赛(CSP-J)是面向青少年编程学习者的重要考试,重点考查计算机基础、数据结构与算法思想的理解和手算能力。其核心原理在于通过笔试形式检验对编程语法、进制转换、栈与队列、二叉树性质、排序算法及复杂度分析等基础概念的掌握程度。掌握这些基础不仅有助于通过初赛,更能为后续上机编程和算法学习奠定扎实根基。在备考场景中,零基础学习者常面临概念理解与手算模拟的挑战,需要系统梳理高频考点并强化真题训练。本文围绕CSP-J初赛的分数构成、核心知识点与实战策略展开,帮助考生高效规划备考路径。

weixin_34242509的博客 578

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

FTL没有映射管理,跟上班没有钱有什么区别

地址映射是FTL最原始最基本的功能

weixin_41904238的博客 418

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

境外业务性能优化实践

境外度假业务与国内业务相比有很大不同。以点评 App 为例,超过一半的的 DAU 来自国外访问,国外网络情况十分复杂,一些国家的网络基础设施很差,以越南、泰国等东南亚国家为例,很多国家 4G 覆盖率很低,从国外访问国内机房,不仅网络链路长,还涉及到跨网、跨运营商、跨 GFW 的访问情况,访问延迟、网络丢包等情况非常严重;另外由于业务处于发展期,我们的大量业务采用 H5 页面实现,大量使用 Hybr...

GitChat 2330

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

通过程序行为追踪揪出木马病毒 【 大成天下 黄鑫 】

文章出处:大成天下   发布时间:2006-02-02   网址:http://www.unnoo.com    作者:黄鑫(glacier@unnoo.com)  对木马类程序处理多了,就渐渐觉得静/动态手工分析过程在很大程度上都是重复劳动。总要先花半个钟头了解程序特性,手工分析时还生怕漏掉某项隐蔽的关键操作,导致最终清除不彻底。其实只要在主动安装

FreeXploiT 3319

使用freemarker打印,语法失效的问题

比如定义变量名为key, 在freemarker模板中使用的时候${key},设置key的值为xxx, 但是导出freemarker的值还是为变量名${key},不显示我们设置的值xxx 原因: 我这里使用的是struts2, 在action的result属性中要设置type="freemarker",如下所示: /zwdt/pages/print4dt/p.ftl

LeBlock的博客 2857

【FreeMarker】【程序开发】日志

FreeMarker整合了如下的日志包:SLF4,Apache Commons Logging,Log4J,Avalon LogKit和java.util.logging(Java2平台1.4版本之后)。默认情况下,FreeMarker会按如下顺序来查找日志包,而且会自动使用第一个发现的包:SLF4J,Apache Commons Logging,Log4J,Avalon,java.util.lo

王晓斌的专栏 3067

FTL入门

FTL入门 一、概念 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板

qq_47135047的博客 2041

FTL中常用说明

一、FTL常用对象 sessionAttribute、requestAttributes、requestParameters 二、FTL中类的调用方法 三、遍历listⅩ,得到摸个对象在list中的序号,是从0开始计数 ${product_index} 四、格式化日期 <#if (orderHeader.orderDate )?

Liucheng417的博客 2730

ftl文件

1、 ftl文件:Freemarker模板的文件后缀名2、  Freemarker作用:是一种比较简单的网页展示技术,即网页模板和数据模型的结合体。这种结合模式的好处就是,分离了网页界面设计人员和编程人员的工作,让他们各司其职。3、Freemarker工作原理:网页模板里面嵌入了数据模型中的数据、Freemarker自定义流程控制语言、Freemarker自定义的操作函数等等,在装载网页的时候,F...

zw1_csdn的博客 1万+

freemarker常见语法大全

格式比较乱一些,适合ctrl+f搜索关键字 FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format} ${book.name?if_exists } //用于判断如果存在,就输出这个值 ${book.name?default(‘xxx’)}//默认值xxx ${book.name!"xxx"}//默认值xx...

天水一方 5498

HFish搭建

Docker搭建 用docker search hfish搜索可以下载hfish的镜像 docker pull imdevops/hfish 当然下载速度可能不理想,我们用可以用啊里云进行加速,访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 登录后 依次使用命令 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'

玄道的网安博客 4974
上一篇: 编译器选项检测文件 -- ftlConfigDetect.h
下一篇: COM接口中的信息获取
fishjam
博客等级 码龄23年 170粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值