性能分析与优化
游戏猫
多年游戏开发经验,在这里分享经验和心得
展开
-
硬件性能总结
CPU:频率3GHZ,一个指令周期耗时,0.3纳秒。CPU Cache L1:耗时1纳秒,相当于3个指令周期。CPU Cahe L2:耗时5纳秒,相当于15个指令周期。CPU Cahe L3:耗时13纳秒,相当于40个指令周期。DDR3:频率1.333GHZ,每秒最大内存读取速度8GB/s。读取一次耗时60纳秒,约180个指令周期(实际会一次取多个数据缓存到CPU Cache里),耗时高不是由于DDR3的速度慢,而是内存到CPU的线路传输耗时长。DDR4:频率2.666GHZ,每秒最大内存读取速原创 2020-08-19 01:48:14 · 221 阅读 · 0 评论 -
结构体、类、虚函数的内存大小
一、概要C++里结构体和类除了默认访问不一样外,其他基本是一样的,结构体可以有函数甚至是虚函数,所以内存大小上也是一样。但内存的大小不是简单地把所有成员变量的大小加起来就可以,需要考虑对齐、虚函数等,具体看测试的结果。二、测试代码#pragma once#include "stdafx.h"#include <stdio.h>class MemoryClassAlign0{ char a;};class MemoryClassAlign1{ char a; char c原创 2020-07-12 00:40:33 · 1240 阅读 · 0 评论 -
Atomic、Mutex性能测试
一、结论1、Atomic、Mutex相对于不加锁有较大的性能差别。2、Mutex的性能开销是Atomic的两倍左右。二、测试代码#pragma once#include <atomic>#include <thread>#include <chrono>using namespace std;class AtomicTest{private: atomic<long long> atomicCount=0; long long nor原创 2020-07-10 00:32:19 · 673 阅读 · 0 评论 -
gdb调试方法
一、具体方法attach一个进程gdb attach pid查看线程信息info threadsId Target Id Frame1 Thread 0x7f5ccfd39740 (LWP 24823) “mono” 0x00007f5ccf202528 in p...原创 2020-03-10 15:33:55 · 788 阅读 · 0 评论