有哪些提示可以减少.NET应用程序的内存使用量?考虑以下简单的C#程序.
class Program
{
static void Main(string[] args)
{
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
在x64的发布模式下编译并在Visual Studio外部运行,任务管理器报告以下内容:
Working Set: 9364k
Private Working Set: 2500k
Commit Size: 17480k
Run Code Online (Sandbox Code Playgroud)
如果它只为x86编译它会好一点:
Working Set: 5888k
Private Working Set: 1280k
Commit Size: 7012k
Run Code Online (Sandbox Code Playgroud)
然后,我尝试了以下程序,它执行相同但尝试在运行时初始化后修剪进程大小:
class Program
{
static void Main(string[] args)
{
minimizeMemory();
Console.ReadLine();
}
private static void minimizeMemory()
{
GC.Collect(GC.MaxGeneration);
GC.WaitForPendingFinalizers();
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle,
(UIntPtr) 0xFFFFFFFF, (UIntPtr)0xFFFFFFFF);
}
[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetProcessWorkingSetSize(IntPtr process,
UIntPtr minimumWorkingSetSize, UIntPtr maximumWorkingSetSize);
}
Run Code Online (Sandbox Code Playgroud)
在Visual Studio外部的 …
我对VS插件的屏幕截图有一个模糊的记忆,它根据谁给了他们最后的修改,为不同的代码部分着色.谁知道我在说什么?
(我正在进行本机c ++/MS Team源代码控制.我只希望这个工具,如果存在的话,支持这种配置)
背景:
我为我的应用程序构建了一个安装程序,所有我的dll和内容文件都被正确地复制到了C:\Program Files\MyCompany\MyApp目录中.当我从Visual Studio运行我的应用程序时,一切都很好.但是,当我运行我的应用程序的安装版本时,我得到了一个DirectoryNotFoundException.问题似乎与Environment.CurrentDirectory.
我原以为Environment.CurrentDirectory是......
"C:\\Program Files\\MyCompany\\MyApp"
Run Code Online (Sandbox Code Playgroud)
......但实际上......
"C:\\Documents and Settings\\DanThMan"
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?我该如何解决这个问题?
谢谢.
编辑:
好的,嗯.如果我运行"开始"菜单快捷方式,则只会出现此问题 如果我直接运行MyApp.exe,一切都很好.
编辑2:
我想我现在已经深究了这一点.在我的安装程序(Visual Studio SetupProject)中,"开始菜单"快捷方式具有一个名为WorkingFolder"安装快捷方式目标应用程序的文件夹" 的属性.我不小心设置WorkingFolder了"MyCompany".它应该是"应用程序文件夹".现在我已正确设置,Environment.CurrentDirectory再次按预期工作.感谢你的帮助.
编辑3:
但是,阅读下面的警告,我决定使用以下内容作为替代Environment.CurrentDirectory:
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
Run Code Online (Sandbox Code Playgroud) 有没有人知道是否有办法在几行中以HTML格式显示按钮的文本值?
我的意思是,如果你在关联的CSS中锁定按钮的宽度,并且你希望按钮上的文本在2行上,例如..
提前致谢 !
我一直在阅读O'Reilly的书"Dojo - The Definitive Guid",但有些事情对我来说仍然没有确定性.
他们谈论"引导"并从AOL CDN获取dojo.css".
当我在我的机器上测试时,我应该使用CDN吗?或者我应该等待并在我部署时使用它?
其次,这本书讨论了dojo的CDN,但不是dijit.
我正在Google App Engine(GAE)上开发 - 所以在我的Javascript目录中拥有2000+ Dojo/Dijit文件有点烦人,因为它每次都会减慢我上传到GAE的速度.
Firebug给我这个错误:GET http:// localhost:8080/dijit/nls/dijit-all_en-us.js 404 not found GET http:// localhost:8080/dijit/_editor/plugins/FontChoice.js 404 not not发现
我从这里下载了样本:http: //archive.dojotoolkit.org/nightly/dojotoolkit/dijit/themes/themeTester.html?theme=soria ,我想"简单地"让它在我的本地机器上运行谷歌应用引擎(您在上面的URL中看到的localhost:8080).
我看到这个声明可能导致上面的第二个404:dojo.require("dijit._editor.plugins.FontChoice");
另一个错误:无法访问优化的闭包预载("en-us")dijit-all.js(第479行)匿名("dijit.nls.dijit-all",["ROOT","ar","ca", 40多... 0 = ROOT 1 = ar 2 = ca 3 = cs 4 = da 5 = de 6 = de-de 7 = el 8 = en 9 = en-gb])dijit-all.js(489行) dijit-all.js()dojo.i18n._searchLocalePath(locale,true,function(loc){\n
现在继续,我将尝试复制整个dijit库,但有一个解决方案吗?
我当前的脚本包括如下所示:
<script type="text/javascript" src="/javascript/dijit.js"></script>
<script type="text/javascript" src="/javascript/dijit-all.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)
我通过复制并将dijit.js.uncompressed.js重命名为dijit.js来获取dijit.js文件.
在您以交互方式使用R时,是否有一种简单的方法可以将R会话中的所有输入和输出记录到磁盘?
在R.app上Mac OS X我可以做File->Save...,但它不是在恢复,当R崩溃我已经输入的命令太多的帮助.
我尝试过使用sink(...,split=T),但它似乎并没有完全符合我的要求.
任何人都可以提供这三个含义的详细信息吗?
这三者的文档几乎不存在.
我有一个javascript代码,我试图从一个单独的页面加载一个列表(使用jQuery的load()函数),滑出当前列表并滑入新列表.
现在,我不希望旧列表在新列表完全加载之前滑动.任何人都可以告诉我如何实现这一点,而不是看起来脚本在执行时有第二个想法..
谢谢.
编辑
$('.cont a').click(function() {
var page = $(this).attr('href');
$('.p-list').prepend('<div class="loader"> </div>');
$('.p-list').load(page +" .proj").hide().fadeIn();
return false;
});
Run Code Online (Sandbox Code Playgroud)
很抱歉没有把代码放入.但是,我真的不知道这有多少帮助......
我一直在使用Drupal,并且知道它很强大且具有大量功能.我的问题是,它是一个框架,你可以建立真正的大网站?任何人都可以提供一些使用Drupal构建的真正大型网站的例子吗?
要回答我关于在Drupal上构建真正大型网站是否一个好主意的问题,想象一下必须重做facebook作为drupal网站.它是否可能(现实地)?
由于GOF书籍在.Net出现之前很好地组合在一起,GOF中描述的特定模式是否适合.Net?如果是这样,出于什么原因?
这是一个与最近的赏金讨论有关的问题.