G***G 发帖数: 16778 | 1 比如一个类
class customer
{
int salary;
int bonus;
int rewards;
}
然后定义个基于这个类的list
var customers = List ;
这种方法比下面这个直接c里面用数组方法更快吗?
int [] salary;
int [] bonus;
int [] rewards;
在内存使用方面,哪个更好?假设数值有30000个。 |
O***b 发帖数: 104 | 2 没比较过,但是觉得应该是数组快,结构和类都有overhead,数组是直接在一块糙内存
上开搞 |
d****i 发帖数: 4809 | 3 楼上说的对,原生数组最快,占用内存最小。另外,C里面的数组不是你这样定义的,
你把他和Java, C#的搞混了。
【在 G***G 的大作中提到】 : 比如一个类 : class customer : { : int salary; : int bonus; : int rewards; : } : 然后定义个基于这个类的list : var customers = List ; : 这种方法比下面这个直接c里面用数组方法更快吗?
|
G***G 发帖数: 16778 | 4 C里面的数据不是这样定义的吗?
int[] x = new int [30000];
越来越觉得语言越高,越是鸡肋。
结构化编程最好,面对对象编程就是个狗屎。
就像windows一样。
dos最好,winxp比较好,win7次,win8更次
winxp下可以做很多事情,现在win8都不能做了。
所以微软要停止人们对它的喜爱。
dos一目了然。机器在干什么,也非常清晰。对付病毒和木马也比较容易。
现在的win8,你都不知道后台在运行些什么东西。
自己电脑的东西,是不是早被盗走了,你根本不知道。
【在 d****i 的大作中提到】 : 楼上说的对,原生数组最快,占用内存最小。另外,C里面的数组不是你这样定义的, : 你把他和Java, C#的搞混了。
|
b*******s 发帖数: 5216 | 5 如果你是三个值一起用,比如用三个值求和,是类或者结构好一点,cache miss的可能
性小
【在 G***G 的大作中提到】 : 比如一个类 : class customer : { : int salary; : int bonus; : int rewards; : } : 然后定义个基于这个类的list : var customers = List ; : 这种方法比下面这个直接c里面用数组方法更快吗?
|
b*******s 发帖数: 5216 | 6 用list没有必要,因为list不保证线性分配,建议用customer array |
N******K 发帖数: 10202 | 7 你还活在原始社会
去看看egein 或者 armodillo
【在 G***G 的大作中提到】 : C里面的数据不是这样定义的吗? : int[] x = new int [30000]; : 越来越觉得语言越高,越是鸡肋。 : 结构化编程最好,面对对象编程就是个狗屎。 : 就像windows一样。 : dos最好,winxp比较好,win7次,win8更次 : winxp下可以做很多事情,现在win8都不能做了。 : 所以微软要停止人们对它的喜爱。 : dos一目了然。机器在干什么,也非常清晰。对付病毒和木马也比较容易。 : 现在的win8,你都不知道后台在运行些什么东西。
|
s*******g 发帖数: 243 | 8 你说的是java吧,因为java不支持自定义value type,所以List里存的都是
指针,customer可能分散在内存各个地方。C++ vector或者C# List存value type的话,
就能保证customer是连续存在一块内存里的。这样内存占用基本和三个数组没什么区别
了。
真正用起来快慢要看你干什么。如果你要求salary平均,当然是数组快,以为只需要读
一个数组。如果你要求每个customer的total income,就是用customer类快了。
【在 G***G 的大作中提到】 : 比如一个类 : class customer : { : int salary; : int bonus; : int rewards; : } : 然后定义个基于这个类的list : var customers = List ; : 这种方法比下面这个直接c里面用数组方法更快吗?
|
B********e 发帖数: 1062 | 9 用自己觉得最舒服的方式就好了。
Premature optimization is the root of all evil.
【在 G***G 的大作中提到】 : 比如一个类 : class customer : { : int salary; : int bonus; : int rewards; : } : 然后定义个基于这个类的list : var customers = List ; : 这种方法比下面这个直接c里面用数组方法更快吗?
|
g*********e 发帖数: 14401 | 10
this is java
【在 G***G 的大作中提到】 : C里面的数据不是这样定义的吗? : int[] x = new int [30000]; : 越来越觉得语言越高,越是鸡肋。 : 结构化编程最好,面对对象编程就是个狗屎。 : 就像windows一样。 : dos最好,winxp比较好,win7次,win8更次 : winxp下可以做很多事情,现在win8都不能做了。 : 所以微软要停止人们对它的喜爱。 : dos一目了然。机器在干什么,也非常清晰。对付病毒和木马也比较容易。 : 现在的win8,你都不知道后台在运行些什么东西。
|
|
|
g*******t 发帖数: 7704 | 11 数组简单,内存消耗小,class肯定代码多,
不过都不是问题, 维护性,可读性最重要, |
b*******s 发帖数: 5216 | 12 "数组简单,内存消耗小,class肯定代码多"
sure ?
how about this class
class foo
{
foo() = delete;
foo(const foo&) = delete;
foo& operator=(const foo&) = delete;
foo(const foo&&) = delete;
foo& operator=(const foo&&) = delete;
};
【在 g*******t 的大作中提到】 : 数组简单,内存消耗小,class肯定代码多, : 不过都不是问题, 维护性,可读性最重要,
|
N******K 发帖数: 10202 | 13 火鸡节打脸 不厚道
【在 b*******s 的大作中提到】 : "数组简单,内存消耗小,class肯定代码多" : sure ? : how about this class : class foo : { : foo() = delete; : foo(const foo&) = delete; : foo& operator=(const foo&) = delete; : foo(const foo&&) = delete; : foo& operator=(const foo&&) = delete;
|
z******g 发帖数: 271 | 14 兄弟,你现在这个阶段应该少思考,多看书
【在 G***G 的大作中提到】 : C里面的数据不是这样定义的吗? : int[] x = new int [30000]; : 越来越觉得语言越高,越是鸡肋。 : 结构化编程最好,面对对象编程就是个狗屎。 : 就像windows一样。 : dos最好,winxp比较好,win7次,win8更次 : winxp下可以做很多事情,现在win8都不能做了。 : 所以微软要停止人们对它的喜爱。 : dos一目了然。机器在干什么,也非常清晰。对付病毒和木马也比较容易。 : 现在的win8,你都不知道后台在运行些什么东西。
|
h**********c 发帖数: 4120 | |
h**********c 发帖数: 4120 | 16 好象有的cpu /gpu 架构可以压缩array到处理单元
把lapack. linpack, tnt 挂上去 |
h**********c 发帖数: 4120 | 17 有个波兰人搞了数据库index压缩,点子是不错的
不知道卖了没有 我觉得比什么booty data 靠谱 |