
C++系统级编程
文章平均质量分 80
SSD6教程学习文档及练习题详解
勇敢的鱼小将
康复训练
展开
-
C++系统编程之缓存
全文以SSD6 Exercise5为例。首先明确任务目的,我们学习缓存原理的终极目的是利用其机制,来提高程序运行效率。其中对编码最重要的一点是,充分利用时间空间局部性。考虑这样一个循环,其实质是将一个图像逆时针旋转90度。void rotate(int dim, pixel *src, pixel *dst) { int i, j; for(i=0; i < dim; i++) { for(j=0; j < dim; j++) { COPY(&dst[P原创 2022-03-28 17:35:23 · 2416 阅读 · 0 评论 -
C++性能优化之时间效率优化
全文以SSD6的Exercise4为例。性能检测的方式有很多,我选择VS自带的性能探测器,对程序检测的结果如下图。io操作很费时间,尽量将其只做一次,想办法把东西存起来。原创 2022-03-25 17:17:06 · 1981 阅读 · 0 评论 -
C++封装内存管理函数malloc和free
全文以SSD6 Exercise3为例。按照题意,加上额外的信息,在malloc里类似这样做。void *MyMalloc(size_t size, char *filename, int linenumber) { void* p = malloc(strlen(filename) + sizeof(linenumber) + sizeof(fence) + size + sizeof(fence)); void* res = (void*)((int*)((char*)p + sizeof原创 2022-03-21 17:25:18 · 1431 阅读 · 0 评论 -
C++程序运行时的内存与地址
本文全部内容,以SSD6的Exercise1为示例。代码如下图。#include <stdio.h>#include <stdlib.h>#include <iostream>int prologue [] = { 0x5920453A, 0x54756F0A, 0x6F6F470A, 0x21643A6F, 0x6E617920, 0x680A6474, 0x6F697661, 0x20646E69, 0x63636363, 0x63636363原创 2022-03-16 15:05:00 · 2670 阅读 · 3 评论