特殊工具与技术--优化内存分配[续2] 七.一个内存分配器基类 预先分配一块原始内存来保存未构造的对象,创建新元素的时候,可以在一个预先分配的对象中构造;释放元素的时候,将它们放回预先分配对象的块中,而不是将内存实际返还给系统。这种策略常被称为维持一个自由列表。可以将自由列表实现为已分配但未构造的对象的链表。 我们将定义一个名为 CachedObj 的新类来处理自由列表。像 QueueItem ...
分类:
编程语言 时间:
2014-08-15 19:39:29
阅读次数:
361
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是...
分类:
数据库 时间:
2014-08-15 14:28:48
阅读次数:
270
1.http用gzip压缩,设置连接超时时间和响应超时时间
http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读。
2.listview 性能优化
1).复用convertView
在getItemView中,判断convertView是否为空,如果不为空,可复用。如...
分类:
移动开发 时间:
2014-08-11 15:02:19
阅读次数:
174
我们经常看到求 sizeof(A) 的值的问题,其中A是一个结构体,类,或者联合体。为了优化CPU访问和优化内存,减少内存碎片,编译器对内存对齐制定了一些规则。但是,不同的编译器可能有不同的实现,本文只针对VC++编译器,这里使用的IDE是VS2012。#pragma pack()是一个预处理,表示...
分类:
编程语言 时间:
2014-08-06 14:17:01
阅读次数:
234
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/O吞吐量小,形成了瓶颈效应。3、没有创建计算列导致查询不优化。4、内存不足5、网络速度慢6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8、sp...
分类:
数据库 时间:
2014-06-26 12:17:13
阅读次数:
528
题目链接:http://codeforces.com/problemset/problem/216/D
题意:
对于一个梯形区域,如果梯形左边的点数!=梯形右边的点数,那么这个梯形为红色,否则为绿色,
问:
给定的蜘蛛网中有多少个红色。
2个树状数组维护2个线段。然后暴力模拟一下,因为点数很多但需要用到的线段树只有3条,所以类似滚动数组的思想优化内存。
#include
#includ...
分类:
Web程序 时间:
2014-06-22 07:11:35
阅读次数:
205
问题:代码在Debug模式下编译报出内存溢出的错误,而Release模式下则没有。由于Debug模式下包含调试信息,并且不作任何优化。而Release模式进行了各种优化,内存检测等操作均省去,使得程序在代码大小和运行速度上都是最优的。方法1:猜测Release对代码进行了优化或者根本就没有进行内存检...
分类:
其他好文 时间:
2014-06-11 13:00:53
阅读次数:
563
特殊工具与技术--优化内存分配[续1]三、operator new函数和operator delete 函数– 分配但不初始化内存 首先,需要对new和delete表达式怎样工作有更多的理解。当使用new表达式 string *sp = new string("initialized");
的时候,实际上发生三个步骤: 1)首先,表达式调用名为operatornew 的标准库函数,分配足够大...
分类:
编程语言 时间:
2014-06-04 13:42:19
阅读次数:
453
特殊工具与技术--优化内存分配引言: C++的内存分配是一种类型化操作:new为特定类型分配内存,并在新分配的内存中构造该类型的一个对象。new表达式自动运行合适的构造函数来初始化每个动态分配的类类型对象。 new基于每个对象分配内存的事实可能会对某些类强加不可接受的运行时开销,这样的类可能需要使用用户级的类类型对象分配能够更快一些。这样的类使用的通用策略是,预先分配用于创建新对象的内存,需要时在...
分类:
编程语言 时间:
2014-06-02 18:50:59
阅读次数:
464