现在用List<数据类>操作的数据量大就不给力了经常崩溃。 |
|
4分 |
自己用HashTable、BinaryTree等数据结构去实现
|
3分 |
如果想提高速度,可以用Dictionary泛型类,
如果想查询灵活,可以用DataTable类, 其实如果多机应用的话,还不如直接用sql server,用内存数据更麻烦也不会提高速度, |
不是为了快,是因为有几千条记录频繁修改。现在用的List<> 经常挂。 Dictionary会好些吗? |
|
2分 |
那是你的代码健壮性差。
几千条根本不可能导致list出错。 |
1分 |
你应该先确定下你是因为什么原因挂的。
|
1分 |
同意。 你的“悲伤的老板”看来需要给你再次加薪水啊。 |
lz的“悲伤的老板”看来需要给lz再次加薪水啊。
老板不要把一个本来挺好的产品弄得“最后只有勉强就行一点小问题的售后服务、其他懂得开发的人都已经走了”这种境地。 |
|
4分 |
ArrayList,这个集合体积能够自动扩大2倍,可以保证新的内存连续性,防止在短时间内,内存连续的搬迁,减少性能的损耗。所以ArrayList里存的数据,永远是连续的内存空间。
|
3分 |
其实HashTable和字典Dictionary也不错,如果想了解之间的性能,最好到网上查询,根据自己的需要,选择适合的集合。
|
2分 |
几千条数据量不算大吧,你需要从其它方面着手,比如对数据操作的行为,List<T> 没那么脆弱
|
2分 |
代码问题,加异常捕获,代码走查,找到bug所在。我们项目中dictionary套list,几十万的数据频繁更新也没有造成程序崩溃
|
1分 |
使用DataSet 或DataTable是最好不过了
|
新疆啊,能写代码的都没几个人。 |
|
1分 |
并发锁问题?
|
2分 |
前段时间处理的数据大概也是几天条,用的List<T>,还可以。
|
private static List<Topic> _list = new List<Topic>(); private readonly static object _lock = new object(); public static void Add(Topic topicInfo) { lock (_lock) { _list.Add(topicInfo); } } public static void Remove(Topic topicInfo) { lock (_lock) { _list.Remove(topicInfo); } } public static Topic Get() { Topic topicInfo; lock (_lock) { topicInfo = _list.Find(delegate(Topic n_topicInfo) { return n_topicInfo.ExpirationTime > DateTime.Now; }); if (topicInfo != null) { //移除 _list.Remove(topicInfo); return topicInfo; } else { return null; } } } 这能有什么问题啊。。 目前2000左右数据个线程读写 以后能达到几十万啊 |
|
2分 |
cyq.data 的文本数据库可以试试。
|
1分 |
经常崩溃的原因你得自己找啊,如果使用了多线程,一定是你没有做好保护措施吧。
|
2分 |
才几千条就会挂,太不可思意了。我们做游戏,那会数据都是几万条放到List里进行内存操作都不会挂。 |
2分 |
Dictionary只是比List快,崩溃问题不一定能解决,不过Dictionary比List稳定的地方是,Dictionary是线程安全的,多线程不需要lock也可以使用Dictionary,
不过前面几位说的很有道理,是你的程序写得不够严谨,几千条数据应该不算复杂,
|
sql server我们现在学的
|
|
db4 for net能满足你的要求
|
|
DataTable 不错。里面提供了很多实用的方法。
|
|
4分 |
千万别说Dictionary是线程安全的,这可纯粹是误导别人 for (int i = 0; i < 100; i++) { Dictionary<int, object> temp = new Dictionary<int, object>(); for (int j = 0; j < 10; j++) { int m = j; ThreadPool.QueueUserWorkItem((o) => { temp.Add(m, new object()); }); } } 自己跑跑看看,放按钮的点击事件里,然后你多点几次看看。人家Dictionary可没说自己是线程安全的,ConcurrentDictionary才是线程安全的。 |
1分 |
几千行就挂掉……
|
2分 |
Dictionary不是线程安全的,对于你的多线程环境可以试着用ConcurrentDictionary类来储存。 |
那要是服务器死掉,宕机了,你怎么保护,内存中的数据
|
|
搞毛啊 你一次显示的了那么多的数据?为毛不分业啊2了吧
|
|
试过eXtremeDB吗,可以测试一下,貌似还不错
|