说起性能,没有测试,还是没有发言权:

#include

#include

#include

#include

#include

#include

#include

#include

#include

timeval g_ts;

long getnow(){

gettimeofday(&g_ts, NULL);

return g_ts.tv_usec;

}

int size = 10;

int getrand(){

return rand()%size;

}

int main(int agr, char** argc){

if (agr < 2){

printf("uage gar < 2\n");

exit(1);

}

size = atoi(argc[1]);

std::unordered_map map1;

long t1 = getnow();

for (int i = 0; i < size; ++i){

map1.insert(std::make_pair(getrand(),"tes"));

}

for(int i = 0; i < size; ++i){

map1.find(getrand());

}

int rand1 = getrand();

for (int i = 0; i < size; ++i){

map1.erase(getrand());

}

printf("unordered_map %d insert time:%ld\n", size, getnow()-t1);

std::map map2;

t1 = getnow();

for(int i = 0; i < size; ++i){

map2.insert(std::make_pair(getrand(), "tes"));

}

for(int i = 0; i < size; ++i){

map2.find(getrand());

}

for(int i = 0; i < size; ++i){

map2.erase(getrand());

}

printf("std::map insert&find %d times use:%ld\n", size, getnow() - t1);

}

输出结果为:

allen@allenPC:~/code/c++code$ ./tetsb 10

unordered_map 10 insert time:44

std::map insert&find 10 times use:33

allen@allenPC:~/code/c++code$ ./tetsb 100

unordered_map 100 insert time:186

std::map insert&find 100 times use:212

allen@allenPC:~/code/c++code$ ./tetsb 200

unordered_map 200 insert time:330

std::map insert&find 200 times use:453

allen@allenPC:~/code/c++code$ ./tetsb 500

unordered_map 500 insert time:792

std::map insert&find 500 times use:1236

allen@allenPC:~/code/c++code$ ./tetsb 1000

unordered_map 1000 insert time:1552

std::map insert&find 1000 times use:2587

allen@allenPC:~/code/c++code$

看来还是如果数据量较小,unorderedmap更快!

linux进程map,linux下unordered_map和map在小数据下性能差异相关推荐

  1. 医学图像分类_体素科技:深钻小数据下的医学图像分割

    自UNet的提出,卷积神经网络成为了医学影像分割的标配算法.近年来,随着更加先进的网络结构的陆续提出,医学影像分割的准确率被不断刷新.然而,网络结构的改进对算法性能的提升渐渐趋于饱和,医学影像分割的另 ...

  2. linux进程笔记,Linux自学笔记——linux进程及作业管理

    内核的功用主要有进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能这几个方面,本文主要讨论linux进程及作业管理. 进程管理: 进程,process,运行中程序的一个副本,且存在生命周期: ...

  3. Linux 进程资源分配,linux 进程管理和内存分配

    1.进程相关概念 进程:正在运行中的程序 内核功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 Process:运行中的程序的一个副本,是被载入内存的一个指令集合 进程 ID(Pro ...

  4. linux进程属性,Linux进程属性及含义

    一个进程包含多个属性参数,通过使用 ps 命令,我们可以查看当前系统中有关进程的详细信息,例如: [root@localhost ~]# ps -le F S UID PID PPID C PRI N ...

  5. 【Linux进程】Linux进程

    Linux进程 Linux进程介绍 程序和进程 进程并发 CPU和MMU PCB 环境变量 Linux进程控制 创建子进程(fork函数) 子进程切换执行的代码(exec函数族) 回收子进程(wait ...

  6. linux 进程数据结构,Linux进程数据结构详解

    1.Linux的进程简介: 支持多线程的操作系统中,进程是资源分配的最小单位,线程是调度的基本单位.Linux是现代的32位或64位的支持多线程的操作系统,不过Linux是一种以轻量级进程作为线程,多 ...

  7. linux 进程 系统调用,linux进程与系统调用

    进程管理 linux系统的实现非常特别:他对线程和进程并不特别区分.对linux而言,线程只不过是一种特殊的进程罢了. 现代操作系统中,进程提供两种虚拟机制:虚拟处理器和虚拟内存.虽然实际上可能是许多 ...

  8. linux 进程 status,Linux 进程状态详解

    目的 为了对进程从产生到消亡的整个过程进行跟踪和描述,就需要定义各种进程的各种状态并制定相应的状态转换策略,以此来控制进程的运行. 粗略分类运行态:进程占用CPU,并在CPU上运行: 就绪态:进程已经 ...

  9. Linux进程 管理,Linux进程查看与管理以及作业控制

    Linux进程查看与管理 静态结构:重底层开始往上 底层:硬件 kernel(OS):各硬件接口封装成简洁的接口 库:将内核功能封装成功能模块,供程序员研发使用 OS的基本功能:文件系统.网络功能.进 ...

最新文章

  1. Hadoop核心机制详细解析
  2. Kubernetes理论基础
  3. DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)
  4. LeetCode题库第1题 两数之和
  5. 如何利用JavaScript的arguments对象实现用代码打印调用栈的需求
  6. php中怎么让主键自增长,在数据库设计中,无论如何也该设计一个自增ID字段作为主键吗?...
  7. 云时代 揭开性能监测战略的隐秘优势
  8. 黑鱼资源网完整版织梦整站源码打包分享
  9. 园子装修 | 打造自己的直男审美博客园(施工中,持续更新)
  10. 参加西安第三届数字油田高端论坛暨第二届国际学术会议
  11. jQuery静态方法(each、map、isFunction, isWindow, isArray, .trim(), .holdReady())
  12. 四种数据库特性对比(Redis/Mysql/SQLite/MongoDB)
  13. matlab之在坐标区上添加图例函数legend
  14. 左程云算法菜手班整理(一)
  15. 标题:书号验证 2004年起,国际ISBN中心出版了《13位国际标准书号指南》。 原有10位书号前加978作为商品分类标识;校验规则也改变。 校验位的加权算法与10位ISBN的算法不同,具体算法是
  16. 如何停止线程?stop方法过时弊端
  17. SpringBoot-SSMP超详细整合案例
  18. 别着急抢iPhone 13了!拍照有马赛克,苹果确认部分iPhone13存在bug
  19. 软件开发方法和开发模型的比较
  20. 虫儿飞,虫儿飞,你在思念谁

热门文章

  1. 生物计算:SIR模型笔记
  2. 可视化应用实战案例:metacoder-相关进化树图的绘制
  3. 微信黑科技-推荐系统,一文带你看懂为什么微信推荐这么快?
  4. 强化学习(五)用时序差分法(TD)求解
  5. python数据库编程(1):潦草的开篇
  6. 找出数组中任一重复的数字
  7. eclipse插件的发布
  8. tomcat架构分析(概览)【转】
  9. spring boot整合spring5-webflux从0开始的实战及源码解析
  10. Spark:一个高效的分布式计算系统--转