linux进程map,linux下unordered_map和map在小数据下性能差异
说起性能,没有测试,还是没有发言权:
#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在小数据下性能差异相关推荐
- 医学图像分类_体素科技:深钻小数据下的医学图像分割
自UNet的提出,卷积神经网络成为了医学影像分割的标配算法.近年来,随着更加先进的网络结构的陆续提出,医学影像分割的准确率被不断刷新.然而,网络结构的改进对算法性能的提升渐渐趋于饱和,医学影像分割的另 ...
- linux进程笔记,Linux自学笔记——linux进程及作业管理
内核的功用主要有进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能这几个方面,本文主要讨论linux进程及作业管理. 进程管理: 进程,process,运行中程序的一个副本,且存在生命周期: ...
- Linux 进程资源分配,linux 进程管理和内存分配
1.进程相关概念 进程:正在运行中的程序 内核功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 Process:运行中的程序的一个副本,是被载入内存的一个指令集合 进程 ID(Pro ...
- linux进程属性,Linux进程属性及含义
一个进程包含多个属性参数,通过使用 ps 命令,我们可以查看当前系统中有关进程的详细信息,例如: [root@localhost ~]# ps -le F S UID PID PPID C PRI N ...
- 【Linux进程】Linux进程
Linux进程 Linux进程介绍 程序和进程 进程并发 CPU和MMU PCB 环境变量 Linux进程控制 创建子进程(fork函数) 子进程切换执行的代码(exec函数族) 回收子进程(wait ...
- linux 进程数据结构,Linux进程数据结构详解
1.Linux的进程简介: 支持多线程的操作系统中,进程是资源分配的最小单位,线程是调度的基本单位.Linux是现代的32位或64位的支持多线程的操作系统,不过Linux是一种以轻量级进程作为线程,多 ...
- linux 进程 系统调用,linux进程与系统调用
进程管理 linux系统的实现非常特别:他对线程和进程并不特别区分.对linux而言,线程只不过是一种特殊的进程罢了. 现代操作系统中,进程提供两种虚拟机制:虚拟处理器和虚拟内存.虽然实际上可能是许多 ...
- linux 进程 status,Linux 进程状态详解
目的 为了对进程从产生到消亡的整个过程进行跟踪和描述,就需要定义各种进程的各种状态并制定相应的状态转换策略,以此来控制进程的运行. 粗略分类运行态:进程占用CPU,并在CPU上运行: 就绪态:进程已经 ...
- Linux进程 管理,Linux进程查看与管理以及作业控制
Linux进程查看与管理 静态结构:重底层开始往上 底层:硬件 kernel(OS):各硬件接口封装成简洁的接口 库:将内核功能封装成功能模块,供程序员研发使用 OS的基本功能:文件系统.网络功能.进 ...
最新文章
- Hadoop核心机制详细解析
- Kubernetes理论基础
- DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)
- LeetCode题库第1题 两数之和
- 如何利用JavaScript的arguments对象实现用代码打印调用栈的需求
- php中怎么让主键自增长,在数据库设计中,无论如何也该设计一个自增ID字段作为主键吗?...
- 云时代 揭开性能监测战略的隐秘优势
- 黑鱼资源网完整版织梦整站源码打包分享
- 园子装修 | 打造自己的直男审美博客园(施工中,持续更新)
- 参加西安第三届数字油田高端论坛暨第二届国际学术会议
- jQuery静态方法(each、map、isFunction, isWindow, isArray, .trim(), .holdReady())
- 四种数据库特性对比(Redis/Mysql/SQLite/MongoDB)
- matlab之在坐标区上添加图例函数legend
- 左程云算法菜手班整理(一)
- 标题:书号验证 2004年起,国际ISBN中心出版了《13位国际标准书号指南》。 原有10位书号前加978作为商品分类标识;校验规则也改变。 校验位的加权算法与10位ISBN的算法不同,具体算法是
- 如何停止线程?stop方法过时弊端
- SpringBoot-SSMP超详细整合案例
- 别着急抢iPhone 13了!拍照有马赛克,苹果确认部分iPhone13存在bug
- 软件开发方法和开发模型的比较
- 虫儿飞,虫儿飞,你在思念谁