我正在开发一个针对桌面系统的应用程序,它可能只有256MB RAM(Windows 2000及更高版本).在我的应用程序中,我有这个大文件(> 256MB),其中包含大约160字节/每个的固定记录.这个应用程序有一个相当漫长的过程,随着时间的推移,它将随机访问大约90%的文件(用于读写).任何给定的记录写入距离读取该特定记录的记录访问量不会超过1,000(我可以调整此值).
我有两个明显的选择:常规I/O(FileRead,FileWrite)和内存映射(CreateFileMapping,MapViewOfFile).后者在具有足够内存的系统中应该更有效率,但在具有低内存的系统中,它将换掉大多数其他应用程序的内存,这在我的应用程序中是禁止的.有没有办法让这个过程不占用所有内存(例如,强制刷新我不再访问的内存页面)?如果这是不可能的,那么我必须回到常规I/O; 我本来希望在写入部分使用重叠I/O(因为访问是如此随机),但是文档说小于64K的写入总是同步提供.
欢迎任何改进I/O的想法.
我正在开发一种HMI应用程序,并且正在创建定义特定机器的对象.让我们说这是一辆汽车,为了争论.
引擎的一个对象是显而易见的.引擎上有一些常见的传感器,这是一些安装在引擎对象上的几个属性的对象.油门属性当然是一个输入.
这辆车至少有一扇门.每扇门都可以有一个窗户,它可以打开,也可以电动操作.如果它是电动的,它将取决于汽车的动力来运行.
现在,我应该将门作为汽车对象的属性暴露出来,还是将它保密并让汽车对象在OpenDoor和RollDownWindow函数中操作门是最明智的?活动怎么样?我应该在引擎上公开事件,例如LowOnOil事件,还是我应该在汽车对象中处理它反过来又可能有像EngineIsLowOnOil这样的事件?
你会怎么做?
目的是向Web应用程序中的当前用户ID等触发器发送额外信息.由于使用了连接池,并且所有连接都使用相同的用户ID,如何将原始Web用户ID传递给触发器?这需要在不触及应用程序代码的情况下实现.它是一个基于Java的应用程序.
约翰
请告诉我在用./script.sh和启动脚本之间bash shell有什么区别
. ./script.sh?
根据C99,以下代码是否合法?
...
for(....) {
int x = 4;
...
}
...
Run Code Online (Sandbox Code Playgroud)
您可以假设在第3行之前,变量x从未声明过.
到目前为止我只发现了以下内容,但我认为这还不够:
块允许将一组声明和语句分组为一个语法单元.具有自动存储持续时间的对象的初始化程序和具有块作用域的普通标识符的可变长度数组声明符将被评估,并且每次声明时,值都存储在对象中(包括在没有初始化程序的对象中存储不确定值)按执行顺序到达,就好像它是一个语句,并在声明符出现的顺序中的每个声明中.
从该PDF的第145页开始.
为什么p和p8在以下代码中有所不同?
视图函数的开头(在名为"proteinSearch"的Django应用程序中的文件views.py中,名为"Protein"的模型具有名为"description"的字段):
def searchForProteins2(request, searchStr):
p8 = Protein.objects.filter( description__icontains=searchStr)
#Why doesn't this work?????
p = Protein.objects.filter( description__icontains=searchStr)
import pdb; pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
在pdb中交互式:
(Pdb) searchStr
u'centr'
(Pdb) p8
[<Protein: IPI00657962.1>, <Protein: IPI00479143.2>, <Protein: IPI00477050.4>, <Protein: IPI00220625.1>,
95.2>]
(Pdb) p
*** SyntaxError: SyntaxError('unexpected EOF while parsing', ('<string>', 0, 0, ''))
Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题,但是是否可以innodb_buffer_pool_size在运行时更改MySQL配置选项 ?
或者,是否等效地,有一种方法可以在不关闭现有连接或拒绝新连接的情况下重新加载MySQL(就像您可以使用Apache一样)?
Linux_32(2.6.26)+ MySQL 5.0.24a
当我使用Java Bloomber V3 API时,它通常可以工作.但是,有时,特别是在重新启动后,bbcomm.exe没有在后台运行.我可以通过运行blp.exe手动启动它,但我想知道是否有办法通过API执行此操作?
我还在等待Help-Help ......
几乎任何IDE都会创建许多与正在开发的应用程序无关的文件,它们由IDE生成并保留,因此他知道如何构建应用程序,版本控制存储库等等.
这些文件是否应该保留在版本控制下以及与aplication有关的文件(源代码,应用程序的配置文件......)?
事情是:在某些IDE上,如果您创建一个新项目,然后使用IDE中嵌入的版本控制客户端/命令将其导入版本控制存储库,那么所有这些文件都将被发送到respitory.而且我不确定这是对的:在同一个项目上工作的两个不同的开发人员想要使用两个不同的IDE?
我想让这个问题不可知,避免引用任何特定的IDE,编程语言或版本控制系统.所以这个问题与这些问题并不完全相同: