小编sta*_*lue的帖子

你会如何在代码中代表魔方?

如果您正在开发解决Rubik's Cube的软件,您将如何表示立方体?

rubiks-cube data-structures

56
推荐指数
7
解决办法
2万
查看次数

知道任何Java垃圾收集日志分析工具吗?

我正在寻找一个工具或脚本,它将从我的Web应用程序中获取控制台日志,解析垃圾收集信息并以有意义的方式显示它.

我正在使用以下标志启动Sun Java 1.4.2 JVM:

-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
Run Code Online (Sandbox Code Playgroud)

日志输出如下所示:

54.736: [Full GC 54.737: [Tenured: 172798K->18092K(174784K), 2.3792658 secs] 257598K->18092K(259584K), [Perm : 20476K->20476K(20480K)], 2.4715398 secs]
Run Code Online (Sandbox Code Playgroud)

如果我有一个能够直观地绘制垃圾收集趋势图的工具,那么理解几百种这样的日志条目就会容易得多.

java performance logging garbage-collection

56
推荐指数
7
解决办法
8万
查看次数

括号在x86 asm中的含义是什么?

给出以下代码:

L1     db    "word", 0

       mov   al, [L1]
       mov   eax, L1
Run Code Online (Sandbox Code Playgroud)

括号([L1])代表什么?

x86 assembly

56
推荐指数
4
解决办法
4万
查看次数

mscorlib.dll和System.dll

为什么MS最初决定维护这两个独立的核心库?也许他们考虑到了一些可伸缩性问题,但是现在我从来没有看到任何类型的应用程序都不需要这两者.有没有人有这方面的内幕消息?这不是很重要,但多年来一直在我的脑海里.

PS.我知道两个库中有什么,我知道不同之处 - 我是Reflector的忠实粉丝:)只是想知道两者的分离有什么实际用途.

.net assemblies

54
推荐指数
4
解决办法
4万
查看次数

什么是注册%eiz?

在我使用以下转出的汇编代码中objdump:

lea    0x0(%esi,%eiz,1),%esi
Run Code Online (Sandbox Code Playgroud)

什么是注册%eiz?前面的代码是什么意思?

x86 assembly gnu-assembler objdump

52
推荐指数
3
解决办法
7933
查看次数

使用ILMerge和.NET 4库

两个问题:

1)ILMerged程序集中不包含基本.NET程序集

从.NET 3.5/Visual Studio 2008升级到.NET 4/Visual Studio 2010后,我在后期构建中使用ILMerge时遇到问题.我有一个解决方案,其中有几个项目的目标框架设置为".NET Framework 4" .我使用以下ILMerge命令将单个项目DLL合并到一个DLL中:

if not $(ConfigurationName) == Debug
  if exist "C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe"
    "C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe"
      /lib:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319"
      /lib:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies"
      /keyfile:"$(SolutionDir)$(SolutionName).snk"
      /targetplatform:v4
      /out:"$(SolutionDir)bin\development\$(SolutionName).dll"
      "$(SolutionDir)Connection\$(OutDir)Connection.dll"
      ...other project DLLs...
      /xmldocs 
Run Code Online (Sandbox Code Playgroud)

如果我不指定.NET 4框架目录的位置,我会从ILMerge得到"Unresolved assembly reference not allowed:System"错误.如果我不指定MSTest目录的位置,我得到"不允许未解析的程序集引用:Microsoft.VisualStudio.QualityTools.UnitTestFramework"错误.

上面的ILMerge命令工作并生成DLL.但是,当我在另一个.NET 4 C#项目中引用该DLL并尝试使用其中的代码时,我收到以下警告:

无法解析主要引用"MyILMergedDLL",因为它对.NET Framework程序集"mscorlib,Version = 4.0,Culture = neutral,PublicKeyToken = b77a5c561934e089"具有间接依赖性,其版本"4.0.65535.65535"高于版本当前目标框架中的"4.0.0.0".

如果我然后删除该/targetplatform:v4标志并尝试使用MyILMergedDLL.dll,我收到以下错误:

"System.Xml.Serialization.IXmlSerializable"类型在未引用的程序集中定义.您必须添加对程序集'System.Xml,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用.

看起来我不应该这样做.使用我的MyILMergedDLL.dll API的人不应该添加对它引用的任何库的引用.我怎么能绕过这个?

2)仅在使用合并程序集时出现TypeLoadException

编辑:除此之外,即使我System.Xml在使用MyILMergedDLL.dll的使用者项目中添加引用,使用MyILMergedDLL.dll中的一些代码也会产生以下异常:

System.TypeLoadException:无法从程序集'MyILMergedDLL,Version = 1.0.1.1,Culture = neutral,PublicKeyToken = …

.net dll ilmerge assemblies c#-4.0

51
推荐指数
2
解决办法
6万
查看次数

从属性设置器抛出什么异常?

我有一个字符串属性具有最大长度要求,因为数据链接到数据库.如果调用者尝试设置超过此长度的字符串,我应该抛出什么异常?

例如,这个C#代码:

public string MyProperty
{
    get
    {
        return _MyBackingField;
    }
    set
    {
        if (value.Length > 100)
            throw new FooException("MyProperty has a maximum length of 100.");

        _MyBackingField = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

我考虑过ArgumentException,但这似乎不对.从技术上讲,它是一个功能 - MyProperty_set(string value)- 所以ArgumentException可以制作一个案例,但它不是作为消费者眼睛的一个功能被调用 - 它位于赋值运算符的右侧.

这个问题也可能扩展到包括在属性设置器中完成的各种数据验证,但我对上述情况特别感兴趣.

c# validation properties exception

49
推荐指数
5
解决办法
3万
查看次数

如何找到装配的完全限定名称?

如何找到程序集的完全限定名称,例如:

MyNamespace.MyAssembly, version=1.0.3300.0, 
Culture=neutral, PublicKeyToken=b77a5c561934e089
Run Code Online (Sandbox Code Playgroud)

我已经设法使用sn.exeSDK中的我的PublicKeyToken ,但我想轻松获得完整的限定名称.

c# deployment strongname assemblies

49
推荐指数
7
解决办法
5万
查看次数

垃圾收集的"隔离岛"

任何人都可以解释垃圾收集隔离岛的概念吗?

java garbage-collection

49
推荐指数
3
解决办法
1万
查看次数

码头:嵌入还是不嵌入?

嵌入码头与在码头部署您的webapp 有什么好处?如果您计划部署多个Web应用程序,您是否应该严格执行为每个Web应用程序部署war文件(而不是编写调用每个Web应用程序的嵌入式服务器)?

java web-applications jetty embedded-jetty

48
推荐指数
3
解决办法
9824
查看次数