要让CLR挂掉的话……】的更多相关文章

http://rednaxelafx.iteye.com/blog/460893 (Disclaimer:如果需要转载请先与我联系. 作者:RednaxelaFX -> rednaxelafx.iteye.com) 系列文章: 要让CLR挂掉的话-- 要让CLR挂掉的话(第二弹)-- 前几天跟浩飞老兄闲聊的时候,聊到说一个不知道什么地方在面试人的时候,如果面试者说自己精通Java,他们就出题考面试者如何让JVM挂掉.这种面试方式或许是比较激进,不过倒也可以考考别人对特定JVM的实现的认识. 于是…
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This output file may be truncated or incomplete. # # Out of Memory Error (os_linux.cpp:2673), pid=28610, tid=139813184919296  日志分析原因很简单,服务器的内存不够用,导致进程崩溃 JA…
引言 首先想给初学者推荐下<CLR via C#>这本好书,做.Net开发的开发者应该都读一下.为避免广告之嫌,所以这里只提供豆瓣书评的链接. CLR 作为.Net 程序跨平台运行的载体,和Java的JVM有着类似的功能(JAVA为跨平台而生,实现这一目标离不开JVM). 随着.NET Framework的日益发展CLR也有日新月异的变化.这些变化为开发带来更多有用的特性,在提高开发效率的同时也提高了程序的性能和稳定性. 如果大家觉得还有必要把这块更新的更好,还请多多反馈. 如果觉的对您有用还…
clr相关编译器编译生成的托管模块由四部分组成:PE32或32+头.clr头.元数据.IL代码. 元数据和IL代码完全对应,保持一致(:>)性. 元数据有很多用途: VS的智能感知,自动补全: 代码验证保证类型安全: 序列化.反序列化: 垃圾回收(从元数据得知哪些根引用了对象). 元数据包含两类表,一种描述源代码中定义的类型和成员:另一种描述代码引用的类型和成员.模块内部的一些元数据表的大小和偏移量在clr头中会有包含. 元数据是由几个表构成的二进制数据块.有三种表:定义表.引用表.清单表. 常…
引言 GC 作为CLR的垃圾回收器,让程序员可以把更多的关注度放在业务上而不是垃圾回收(内存回收)上.其实很多语言也有类似的东东, 如Java也有JIT 等等 GC基本概念 垃圾回收机制的算法有好多种,GC为Mark-Sweep算法. GC中分为三代,来优化管理不同生命周期的对象. 大部分的对象在Gen0就死掉了. Gen0 和Gen 1 又叫作ephemeral generations (短命代,个人翻译意见 ) 大于85,000bytes的对象会被直接分配到Large object heap…
TextView的autoLink属性为我们提供了很大的便利性,当文本中有网址,邮箱或电话的时候可以让我们方便地执行打电话发邮件等动作,不过也有一些问题,比如说设置autoLink包含email属性,当文本中有邮件地址时只要点击就可以调用邮件客户端来发邮件,但是如果当前系统中没有邮件客户端可供调用,程序会直接挂掉. 通过看Log可以发现,系统抛出了ActivityNotFoundException异常,并且Exception的getMessage中包含"mailto:xxxx@xxx.xxx&q…
1.CTS(Common Type System)通用类型系统 CTS不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展.任何以.NET平台作为目标的语言必须建立它的数据类型与CTS的类型间的映射.所有.NET语言共享这一类型系统,实现它们之间无缝的互操作.该方案还提供了语言之间的继承性.例如,用户能够在VB.NET中派生一个由C#编写的类.我们可以将CTS 看成是所有.NET 语言的superset (union),而符合CTS 的各种不同的语言,其实都只是CT…
前言 MSSQLSERVER提供程序集,无疑可以让编程人员更加便捷的操作数据库数据,比如c#写的函数,可以在数据库当作sql的函数使用,你想想他对不熟悉数据库的程序员来说是有多么的嗨.这么好的机制,大家当然不能错过,但是对于数据库变更迁移,可能会存在障碍与不便.所以建议大家在使用sqlsesrver clr程序集的时候也要做个权衡,以免给数据库以后的扩张带来不便.建议大家单次数据,数据过滤,的时候使用sqlserver clr程序集.长期依赖的话,还是另外选择解决方案. MSSQLSERVER接…
一.所有类型都是从System.Obejct派生 1.下面两个类型定义是完全一致的: class Employee{ ... } class Employee:System.Object{ ... } 2.System.Object的公共实例方法 a.Equals 判断对象是否具有相等的值 b.GetHashCode 返回对象值的哈希码 c.ToString 该方法默认返回类型的完整名称( this.GetType().FullName ) d.GetType 返回从Type派生的一个对象的实例…
最简单的IL程序 .assembly test {} .method void Func() { .entrypoint ldstr "hello world" call void [mscorlib]System.Console::WriteLine(string) ret } 对上面的程序说明如下: .assemble伪指令用来声明程序集,该关键字是必须的 .method伪指令用来申明方法 .entrypoint伪指令用来表示程序的入口函数(方法),一个程序只能有一个入口,且不能放…