软件将使用内存,没有什么大惊喜,但与程序的大小相比,如何将这种使用保持在最低限度.
我认为最好的例子就是Firefox.有些用户已经体验过,有些用户没有,但可以肯定地说,所有以前版本的Firefox使用的内存比当前版本多得多.然而,功能扩展和选项被添加.我希望内存使用率可以作为额外的选项而增加.
换句话说,必须有一些方法可以确保您的程序不会耗尽计算机的内存.
所以,我把这变成了一个"最佳实践"的问题,向你们所有人询问你的小技巧和调整是什么让你的程序做它做的事情,用你通常认为的CPU少.而且,最肯定的是避免什么.
这里有一个小问题:我在一本关于C#的书中遇到了一些问题.显然,在编写枚举时,可以设置此枚举的索引大小.对于大的Enum,你应该让编译器处理它我猜,但对于只有2或3项的枚举,你可以这样做:
public enum HTMLTYPE : sbyte
{
HTML401,XHTML10,XHTML11
}
Run Code Online (Sandbox Code Playgroud)
对于那些不知道原因的人来说,显然为任何枚举的索引保留的内存量会自动设置为C#中的整数.换句话说,将保留该数量的内存.但是当你在Enum中定义这么少的东西时,整数就是浪费空间.该书声称这可以减少程序使用的内存量.我想知道这是否属实.
编辑:确实,它应该是记忆,让我觉得好.更改了所有条目.
在Real World Haskell中,有一个标题为"没有数组或哈希表的生命"的部分,作者建议列表和树在函数式编程中是首选,而数组或哈希表可能在命令式程序中使用.
这是有道理的,因为在创建新列表或树时,重用部分(不可变)列表或树要比使用数组更容易.
所以我的问题是:
可能重复:
外键有什么问题?
我使用MS Sql Server和一个大约4 GB数据的大型数据库.
我在网上搜索为什么我应该使用外键.到现在为止,我只索引用于连接表的键.性能都很好,dataintegrety没问题.
我应该使用外键吗?使用外键可以获得更高的性能吗?
我有一个ArrayList我想完全输出为String.基本上我想按顺序输出它,使用toString由制表符分隔的每个元素.有没有快速的方法来做到这一点?你可以循环它(或删除每个元素)并将它连接到一个字符串,但我认为这将是非常缓慢的.
class hello {
var $fname;
var $lname;
function attrib() {
$this->fname = "sarmen";
$this->lname = "dijango";
}
function say() {
$name = $this->fname.", ".$this->lname;
return $name;
}
}
Run Code Online (Sandbox Code Playgroud)
当我在页面上包含类并输入类似的内容时,这是我的示例类
$d = new hello();
$d->say()
Run Code Online (Sandbox Code Playgroud)
什么都没发生.我究竟做错了什么?
我今天决定熟悉wxWidgets.我下载了2.8.9版(当前版本),并以所有需要的模式编译了库.
我能够开箱/运行带有wxWidgets的样品.但是,当我使用/ Za编译(即禁用语言扩展)时,即使是最小的wxWidgets样本,我也会遇到100多个构建错误.
我无法找到有关此问题的任何文档.我可以定义一些能够将wxWidget内部转换为符合标准的东西(至少就VC++的合规性而言)吗?
也许我在构建原始库时做错了什么......有没有人以前遇到过这个"问题"?
谢谢!
编辑:我忘了提到我正在使用VC++ 9.
此外,这是前几个错误:
------ Build build:项目:minimal,配置:Unicode Debug Win32 ------
编译...
minimal.cpp
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(69):错误C2143:语法错误:缺少')'在'*'之前
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(69):错误C2143:语法错误:缺少';' 在'*'之前
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(69):错误C2059:语法错误:')'
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(69):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(810):错误C2146:语法错误:缺少';' 在标识符"SCMPFUNC"之前
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(810):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(810):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(811):错误C2146:语法错误:缺少';' 在标识符"SCMPFUNC"之前
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(811):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int
c:\ wxWidgets-2.8.9\include\wx/dynarray.h(811):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int
编辑:它看起来像是由使用_cdecl引起的第一个错误.看起来defs.h只检查是否定义了__VISUALC__.关于迂腐的一切......
我有一个基于导航的应用程序,它显示了一个TableView,您可以在其中选择一个单元格,它会为您带来该单元格的"详细信息视图".我希望这个视图有一个TabBar,我可以在3个子视图之间进行选择.我在网上找到了几个解决方案,但没有一个非常有帮助.是否有专门的教程或是他们的源代码,说明如何做到这一点?谢谢
我知道双核CPU如何处理中断.我想知道如何在具有多个物理处理器的电路板上实现中断处理.
是否有任何中断责任由物理板的配置决定?每个处理器必须能够处理某些类型的中断,如磁盘I/O. 除非有一些电路来管理和分配适当的处理器中断?我的猜测是该方案必须是处理器中立的,因此任何处理器和内核都可以运行中断处理程序.
如果核心正在等待磁盘读取,那么当磁盘准备就绪时,该核心是否会运行中断处理程序?
我遇到了一种情况,我需要找到一种更好的方法来部署Web应用程序(asp.net到iis6..sorry ruby爱好者:(我很好奇你们有些人做过什么?我看过那里的产品(Anthill) ?)但我真的在寻找一种方法,我的运营团队可以编写一种方法来获取zip文件(打包的代码和程序集),解压缩,部署到服务器场.任何人都有任何想法或解决方案可能正在使用?
我们在winforms中为c#设置蒙版文本框的掩码时出现的线对我来说似乎没什么吸引力.我想知道是否有任何方法可以设置蒙版文本框的掩码,该行是没有显示???
.net ×1
arraylist ×1
c# ×1
c++ ×1
cpu ×1
deployment ×1
foreign-keys ×1
hardware ×1
iis-6 ×1
immutability ×1
interrupt ×1
iphone ×1
java ×1
multicore ×1
navigation ×1
oop ×1
performance ×1
php ×1
powershell ×1
sql ×1
sql-server ×1
string ×1
tabbar ×1
visual-c++ ×1
winforms ×1
wxwidgets ×1