可能重复:
什么是一些好的.NET Profilers?
我正在寻找好的.NET CLR内存分析工具.
我的关键要求是它将与IIS和独立的CLR应用程序配合良好.理想情况下,我会看到分配了哪些对象,分配它们的位置以及它们的大小?
有没有人对您推荐的特定工具有任何良好的体验?
string str1 = "12345ABC...\\...ABC100000";
// Hypothetically huge string of 100000 + Unicode Chars
str1 = str1.Replace("1", string.Empty);
str1 = str1.Replace("22", string.Empty);
str1 = str1.Replace("656", string.Empty);
str1 = str1.Replace("77ABC", string.Empty);
// ... this replace anti-pattern might happen with upto 50 consecutive lines of code.
str1 = str1.Replace("ABCDEFGHIJD", string.Empty);
Run Code Online (Sandbox Code Playgroud)
我继承了一些与上面的代码片段相同的代码.它需要一个巨大的字符串,并从大字符串中替换(删除)常量较小的字符串.
我相信这是一个非常耗费内存的过程,因为每个替换都会在内存中分配新的大型不可变字符串,等待通过GC死亡.
1.更换这些值的最快方法是什么,忽略内存问题?
2.实现相同结果的最有效的内存方式是什么?
我希望这些是相同的答案!
在这些目标之间适合某些地方的实用解决方案也值得赞赏.
假设:
MacBook Air有足够的马力来偶尔在Ruby中进行开发吗?目标C?可可?
这样做还有其他主要限制吗?
笔记:
使用过程中的会话状态是邪恶的,当涉及到缩放的Web应用程序(不群发挥出色,炸弹出来的时候服务器回收).
假设你只需要保持的少量信息在会话状态,什么是使用加密的Cookie项用于此目的,而不是特定状态的服务器/数据库的的缺点?
显然使用cookie会产生少量的网络开销,显然你是在假设客户端浏览器/移动设备上启用了cookie的情况下运行的.
您可以通过方法看到其他哪些陷阱?
对于简单,可扩展且强大的会话,这是一个很好的选择吗?
鉴于:
我可以向硬件热情的开发者提问两个问题[不是游戏玩家!]
如果没有 - [你的硬件拐杖是什么],你不能开发哪些高端硬件项目?
基线[没有多余的装饰]开发机器应该是什么样的,应该有哪些基本规格来确保任何开发人员仍然可以提高效率?
注意:您的基线可能值得一提的是什么平台和设备?
我需要从数据库(nvarchar)中提取大型Unicode文本字符串(例如200Mb)并存储在内存中进行处理.即我需要随机访问字符串的所有部分.
从严格的以内存为中心的角度来看,使用System.IO.MemoryStream和System.String作为内存表示的专家和内容是什么.
我试图研究的一些因素是:
我正在寻找关于这些要点的清晰度和建议,以及我没有想到的任何其他记忆考虑因素?
注意:可能有更好的方法来处理这些字符串,但此时我真的只是询问存储这样一个对象的内存考虑因素.
在使用C#项目在VS2005 +中进行开发时,我右键单击框架方法/属性/类型并选择"转到定义",默认情况下,我们会获得一个新的锁定选项卡,其中包含从框架生成的代码,标记为适当[来自元数据.
但是,当我们在VB.NET项目中执行相同操作时,您将进入带有相关对象浏览器视图的新选项卡.
这一直让我印象深刻,并希望背后有充分的理由.IMO对象浏览器更好.
是否存在默认视觉工作室行为差异的合理原因?如果是这样,它是什么?
有没有人有过生成文件名包含非ascii国际语言字符的文件的经验?
这样做很容易实现,还是充满了危险?
这个功能是否适用于日语/中文网络用户?
文件扩展名是否也应该是国际语言字符?
信息:我们目前在我们的网站上支持多语言,但我们的文件名始终是ASCII.我们在.NET框架上使用ASP.NET.这将用于国际用户可以为文件选择通用格式和名称的情况.
我在.NET 3.5框架上使用ASP.NET webforms.如何在HTML标记中实现自定义属性,例如:
<HTML lang="en">
Run Code Online (Sandbox Code Playgroud)
我想在公共继承的基页上的代码中实现这一点.每次加载页面时,都会根据会话值动态设置属性值.
后期添加:如果可能的话,我希望在没有任何ASP页面更改脚本标记的情况下实现此目的