令人意外的构造函数和析构函数

2023-05-16

印象中构造函数和析构函数的使用不太会影响效率,但在实际开发中却遇到,一个函数频繁的调用一个类的构造函数和析构函数却很耗时

class TestA
{
public:
	TestA()
	{
		m_dX = m_dY = m_dZ = 0;
		m_dW = 0;
	}
	~TestA() {}
	double m_dX;
	double m_dY;
	double m_dZ;
	double m_dW;
};

class TestB
{
public:
	double m_dX;
	double m_dY;
	double m_dZ;
	double m_dW;
};

{
		int nSize = 50000000;

		double dATime = 0;
		{
			auto StartTime = std::chrono::steady_clock::now();

			for (int i = 0; i < nSize; ++i)
			{
				TestA A1[100];
			}

			auto EndTime = std::chrono::steady_clock::now();
			dATime += std::chrono::duration_cast<std::chrono::milliseconds>(EndTime - StartTime).count();//毫秒
		}

		double dBTime = 0;
		{
			auto StartTime = std::chrono::steady_clock::now();

			for (int i = 0; i < nSize; ++i)
			{
				TestB B1[100];
			}

			auto EndTime = std::chrono::steady_clock::now();
			dBTime += std::chrono::duration_cast<std::chrono::milliseconds>(EndTime - StartTime).count();//毫秒
		}
		dATime = dATime / 1000;
		dBTime = dBTime / 1000;
		CString strA;
		strA.Format(_T("%f"), dATime);

		CString strB;
		strB.Format(_T("%f"), dBTime);
		CString strAll;
		strAll = CString("A: ") + strA + CString("s\r\n") + CString("B: ") + strB + CString("s\r\n");
		MessageBox(strAll);
	}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

令人意外的构造函数和析构函数 的相关文章

随机推荐

  • 搭建pixhawk飞控无人小车--飞控接遥控器、舵机、电调以及模式切换

    1 pixhawk飞控的RC IN接遥控器的接收机的PPM CH1 遥控器只需要接这个接线即可 注意飞控正面朝上 xff0c 上面为接地 和遥控器接收机刚好相反 因此不要接错 如下图 2 修改遥控器配置 xff1a System gt RX
  • 欠驱动Or全驱动?——关于机械手驱动方式的介绍与更优选择(以德国Schunk Hand为例)

    这篇文章主要将介绍机械手两种不同驱动方式 即欠驱动和全驱动的定义 应用背景 优劣性能等特性 xff0c 并将以雄克灵巧手为例 xff0c 讨论现阶段机械手驱动方式的更优选择方案 定义 xff1a 首先先来明确欠驱动和全驱动的定义 xff08
  • mysql 批量插入12位随机数字

    解析 xff1a 批量 随机12位数字 mysql随机12位数字 select CEILING RAND 900000000000 43 100000000000 mysql批量处理函数 delimiter create PROCEDURE
  • 俩小伙一晚上写了个 AI 应用,月入两万??(文末附开发教程)

    开发出一款能够与 AI 对话生成和编辑思维导图的工具 xff0c 听起来似乎只能是一群专业的 AI 背景团队花费大量的时间和精力训练模型 xff0c 打磨应用才能完成的事情 但是 xff0c 两名大学生却在一夜之间完成了 xff0c 就像炼
  • 几本对于笔试和面试有用的书

    4本408核心书籍 xff1a 数据结构 计算机操作系统 计算机网络 计算机组成原理 面试宝典 xff1a 程序员面试宝典 剑指offer 编程之美 微软技术面试心得 编程珠玑 Java程序员面试宝典 C语言 xff1a The C Pro
  • 我如何在计算机视觉顶级会议CVPR上发表论文?

    Scalers 点评 xff1a 两个月前 xff0c 成长会的Ramon S290 收到了计算机视觉顶级会议CVPR论文录取的通知 xff0c 而且是口头报告 CVPR在计算机视觉领域属于三大顶级会议之一 xff0c 具有较高的影响力 x
  • nginx整体结构,进程模型

    nginx的整体结构 xff1a 启动nginx 看到了一个master进程 xff0c 一个worker进程 命令 ps ef grep nginx 第一列 xff1a UID 进程所属的用户id 第二列 xff1a 进程ID PID 用
  • ICP、ISP、IAP、JTAG、SWD下载方式

    目录 ICP ISP IAP JTAG SWD下载方式 概述 JTAG SWD ICP ISP IAP ISP与ICP的差别 ISP和IAP的差别 ICP ISP IAP JTAG SWD下载方式 概述 JTAG和SWD是一种标准协议 xf
  • Linux定时任务crontab -e编辑无法保存

    创作时间 xff1a 2022年8月16日09 36 44 提示没权限 进入 var spool下查看cron目录是正常的 xff0c 但是在cron里面没有权限建立文件这个原因 可以尝试先在 var spool cron目录下用vim编辑
  • C++内存分配

    常见的内存分配方式 静态存储区 xff08 基栈 xff09 xff1a 此时的内存在程序编译的时候已经分配好 xff0c 并且在程序的整个运行期间都存在 里面的变量通常为 xff1a static变量 全局变量const常量 xff1b
  • PWM输出讲解

    一 PWM基础知识 1 PWM的定义 PWM xff0c 是脉冲宽度调制 缩写 xff0c 它是通过对一系列脉冲的宽度进行调制 xff0c 等效出所需要的波形 xff08 包含形状以及幅值 xff09 xff0c 对模拟信号电平进行数字编码
  • Win11中安装Linux 教程 | WSL2的使用

    Windows11今天正式向大家开始推送了 xff0c 这也算是十一假期中的一个重磅消息了 我相信有很多小伙伴会升级到Windows11 那这个视频就讲解一下如何在Windows11中安装Linux系统 xff0c 来帮助我们开发 也就是我
  • 没有键盘和显示屏玩转树莓派

    前期准备 win10电脑一台 xff0c 树莓派开发板 xff0c SD卡 xff0c 电源 xff0c 一根网线 xff08 教程中树莓派为RPI3 xff09 废话不说 xff0c 直接跟着走就行了 xff08 1 xff09 把SD卡
  • 无人机遥感应用

    xfeff xfeff 遥感的通用格式为tiff格式 科普 无人机遥感技术的几个领域应用 2016 09 14 10 10 来源 无人机频道 无人机 科普 原标题 xff1a 科普 无人机遥感技术的几个领域应用 无人机遥感在气象监测中的应用
  • Laf Assistant:云开发从未如此爽快!

    原文链接 xff1a https forum laf run d 67 工欲善其事 xff0c 必先利其器 在编写代码时 xff0c IDE 也是我们不可或缺的 它可以让我们更高效地完成代码编写 xff0c 提高开发效率 因此 xff0c
  • S 串口编程 详解4 串口发送数据

    S 串口编程 详解4 串口发送数据 串口发送数据包括 xff1a 十六进制发送数据 手动发送数据 自动发送数据 手动发送数据的代码如下 xff1a 手动发送 long TX count 61 0 void CSCOMMDlg OnButto
  • FreeRtos 获取任务运行时状态以及实现方式分析

    一 获取全部任务的状态 1 1 系统API函数 void vTaskList char pcWriteBuffer 1 2 函数功能 返回所有任务的 xff1a 任务名任务当前运行状态任务优先级任务剩余的最大栈空间任务ID 1 3 函数参数
  • CS231n Lecture 11:图像分割与检测(各种R-CNN, YOLO, SSD)

    CS231n Lecture 11 xff1a 图像分割与检测 图像的分割和检测的相关任务有不同的粒度 xff0c 我们首先明确一下有关概念 xff1a 语义分割 xff08 Semantic Segmentation xff09 xff1
  • 计算机系统基础-fork()

    计算机系统基础 fork 链接 xff1a fork函数 运行结果 结果分析 1 fork函数 fork 系统调用用于创建一个新进程 当运行这个程序时 xff0c 将有如下结果 xff1a prompt gt p1 hello world
  • 令人意外的构造函数和析构函数

    印象中构造函数和析构函数的使用不太会影响效率 xff0c 但在实际开发中却遇到 xff0c 一个函数频繁的调用一个类的构造函数和析构函数却很耗时 class TestA public TestA m dX 61 m dY 61 m dZ 6