少走弯路:esp32(esp8266)中查询子字符位置的性能改进

在极致化个人开源项目

GitHub - StarCompute/tftziku: 这是一个通过单片机在各种屏幕上显示中文的解决方案

的性能过程中 发觉:在esp8266中 对于一个String中查找某个child string的方法一般是使用indexof这个方法,如下:

String strAll="afjkldsfjldsjfldsjfdsjfdshfdsfksjfkldsjf我的看法家里舒服的";
String strChild="看法";int pos=strAll.indexOf(strChild);

这个pos就是字符串的位置。

这个方法一般使用起来没有问题,对于习惯使用String对象的朋友来说更简单;但是,这个方法的效率极低,当你的字符串本身的内容较多的时候,和以下的方法比起来性能是10倍以上:

const char* chrAll=strAll.c_str();
char * chrFind=strstr(chrAll,strChild.c_str());
int pos =chrFind-strAll.c_str();

在esp8266中,第一种方法对于较大的字符串可能需要0.xxx秒,而后一种方法只需要0.0xx秒,在单片机这种需要性能最优的情况下建议使用后一种方法。

一个非常奇怪的疑问就是为啥String 的indexOf方法性能这么低呢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qq音乐sign逆向

qq音乐sign参数逆向 1.概览 参数sign长度40 多次调试发现,前缀zzb不变 2.打日志 跟站发现是vpm,在apply调用打上日志断点: 连蒙带猜知道,最终字符串四部分构成,zzb 24DC2798 HI0TvE4tOMqzN4w88oZCjQ EE0A88FE 1.把…

嵌入式0基础开始学习 Ⅱ 数据结构(1)数据结构

1.1 什么是数据 数据 (data) 是对客观事物的符号表示 在计算机科学中是指所有能入到计算机中并被计算机程序处理的符号的总称 数据元素 (data element) 是数据的基本单元 一个数据元素可以由若干个 数据项 (data item) 组成,数据项是数据不可分割的最小单位 数…

6天掌握Mysql基础视频【完整资料】

课程概述 数据库基本知识(概念、分类、关系型数据库和非关系型数据库、SQL介绍、MySQL介绍、MySQL访问)SQL语法规则数据库操作(增、删、改、查)数据表操作(增、删、改、查)数据操作(增、删、改…

C++第二十一弹---vector深度剖析及模拟实现(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、基本结构 2、默认成员函数 2.1、构造函数 2.2、析构函数 2.3、拷贝构造函数 2.3、赋值操作符重载 3、数据访问 4、迭代器获取 总结 …

数字经济与资本市场的密切关系!

数字经济的崛起,如同一股强劲的东风,吹拂着经济社会的每一个角落!它带来了“新领域”和“新赛道”,赋予了“新动能”和“新优势”,成为引领中国经济增长和社会发展的重要力量。如今,发展数字经济已上升为国…

人人都是产品经理,尼恩产品经理面试宝典(史上最全、定期更新)

《人人都是产品经理,尼恩产品经理面试宝典》(史上最全、定期更新) 本文版本说明:V1 IT不老新物种 的定义 大龄男IT :APM 架构经理 项目经理 高级开发,没有中年危机 大龄女IT:DPM 产品经理 …

为什么宋以前权臣篡位多、宋以后权臣篡位少?

时代不同,主要问题也不同。天下的大气候,自然就要左右王朝的小气候。权臣篡位,得先有权臣。但是,如果当权臣都没有了,又怎么可能有权臣篡位呢?这是一个社会基础的变化。宋以后的主要矛盾是中原和草原的争锋…

springboot+vue+mybatis jsp二手商城系统+PPT+论文+讲解+售后

随着互联网发展对各个领域的影响,互联网为人们的生活和工作带来了翻天覆地的变化。为了提升学校在校学生学籍管理方面的工作效率,实现学校在信息化方面的发展,提出了学校学籍管理系统。论文首先介绍了学校学生学籍管理系统的研究背景&#xf…

Mongodb 可视化工具Robot 3t安装【windows环境下】

下载应用 打开连接点我 选择windows版本并点击下载 下载完毕,双击并傻瓜安装 连接数据库 点击图标, 点击create创建连接 填写host和port 如果有用户名密码的,在authentication里填写 5. save 并连接即可使用!

【深入学习Redis丨第一篇】Redis服务器部署详解

前言 小伙伴们大家好,我是陈橘又青,今天起 《深入学习Redis》 专栏开始更新。本专栏将专为希望深入了解Redis的开发者、系统架构师以及数据库爱好者而写的免费专栏。从Redis的基本概念入手,逐步深入到其内部实现和高级用法。希望能帮助你更好…

[ARM-2D 专题] 1.开始:基本工程搭建,编译和开发环境配置问题解决

要开始使用ARM-2D,前期两个准备工作需要完成: 一块mcu内核为cortex-M的板子,带显示屏(彩色TFT屏,分辨率建议320x240或以上,带TP更佳)。基于这个板子可以正常运行的keil MDK的工程。 好了&#…

手写promise、call、apply、debounce、throttle 等

1、promise 1.1 实现resolve和reject class MyPromise {// 构造方法constructor(executor) {// 初始化值this.initValue()// 初始化this指向this.initBind()try {// 执行传进来的函数executor(this.resolve, this.reject)} catch (e) {// 捕捉到错误直接执行rejectthis.rejec…

android app打开文件管理器选择文件返回path

以下方法对于大部分uri都能获取到path,目前发现的content://com.android.providers.downloads.documents/document/410 无法获取 public static String getPathFromUri(Context context, Uri uri) {if (uri null) {return null;}if (ContentResolver.SCHEME_FILE.equals(uri.g…

高铁Wifi是如何接入的?

使用PC端的朋友,请将页面缩小到最小比例,阅读最佳! 在飞驰的高铁上,除了窗外一闪而过的风景,你是否好奇过,高铁Wifi信号如何连接的呢? 远动的火车可不能连接光纤吧,难道是连接的卫星…

CSS Canvas鼠标点击特效之天女散花(文本粒子动画)

1.效果 2.代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><style>body,html {margin: 0;padding: 0;w…

工控一体机10.1寸显示器电容触摸屏(YA1308101JK)产品规格说明书

如果您对工控一体机有任何疑问或需求&#xff0c;或者对如何集成工控一体机到您的业务感兴趣&#xff0c;可移步控芯捷科技。 一、硬件功能介绍 YA1308101JK产品介绍&#xff1a; YA1308101JK搭载 Android10 主流操作系统&#xff0c;具有系统版本更高、占用内存更低、运行效率…

【领导力SE模型影响地图】如何分辨一个管理者有没有好的领导力? ​

影响地图是以思维导图的形式&#xff0c;在业务目标和交付物之间建立起强关联。 影响地图分为四个层级&#xff1a; 第1层级&#xff1a;目标&#xff08;Why&#xff09;- 想要达成的业务目标。 第2层级&#xff1a;利益相关者&#xff08;Who&#xff09;- 谁能够帮助达成…

新能源汽车推行精益生产:绿色动力下的效率革命

在新能源汽车行业迅猛发展的当下&#xff0c;推行精益生产已成为提升竞争力的关键所在。精益生产&#xff0c;作为一种以客户需求为导向、追求流程最优化和浪费最小化的管理理念&#xff0c;正逐步在新能源汽车领域展现出其独特的魅力。 新能源汽车的兴起&#xff0c;不仅代表了…

如何本地 Debug React 源码

日常开发过程中&#xff0c;有时 debug react 源代码进行问题排查。一种方案是直接把通过 html 引入进来&#xff0c;另外一种是编译并通过 yarn 链接到项目中&#xff0c;本地将介绍如何通过这两种方法进行代码 Debug。 页面引入源代码方式 这种方式比较简单&#xff0c;直接…

眼精星和金鸣识别新增智能结构化识别,助您快速筛选和统计数据

熟悉眼精星票证识别系统或金鸣表格文字识别大师的用户都知道&#xff0c;近日&#xff0c;这二款软件同时上线了“智能结构化”功能&#xff0c;那么&#xff0c;什么是智能结构化呢&#xff1f; 准确地说&#xff0c;我们这里的智能结构化应为OCR智能结构化&#xff0c;因为它…