从Google测试结论C++性能最优,谈C++与C#
今早看到一篇资讯:
Google发表了一篇研究论文(PDF),声称C++是目前市场上性能最好的程序语言。
Google分别用C++、Java、Scala和其发明的Go语言实现一种压缩算法,然后测试其性能。结果显示,C++远胜其它三种语言。虽然C++性能最优越,但Google同时指出它实现起来太复杂,超出了普通程序员的水平,而Java则“最容易实现”。
论文截图
感想
对C
http://www.cyqdata.cn/cnblogs/article-detail-40315
浅谈C#中的延迟加载(1)——善用委托
很久以前就听过延迟加载这个东西,不过没有理解是什么意思,现在算是了解一二了,写点文章作为读书笔记,把自己的想法记录一下,希望对初学者帮助,不管是初学者或者高手如果发现文章那里写得不好或者有更好的思路和做法记得告诉我哦^^。文章打算写成两三篇,这个是第一篇。
在三层结构中我们通常会使用多一个叫做模型层的东西,这一层中最主要做的事情是把数据库中的表 (或者其他数据源,例如xml或者自己定义的一
http://www.cyqdata.cn/cnblogs/article-detail-37567
浅谈C/C++中的顺序点和副作用
一.副作用(side effect)
表达式有两种功能:每个表达式都产生一个值( value ),同时可能包含副作用( side effect )。副作用是指改变了某些变量的值。
如:
1:20 &nb
http://www.cyqdata.cn/cnblogs/article-detail-36505
浅谈C和C++中的const关键字
一.C语言中的const
const是C语言中保留的一个关键字,它用来限定一个变量是只读的,即不可变的。程序中使用const可以在一定程度上提高程序的健壮性,但是程序中使用过多的const,可能在对代码的阅读时增加一定的难度。
(1)用const修饰一般变量
http://www.cyqdata.cn/cnblogs/article-detail-36434
浅谈C++中内存分配、函数调用和返回值问题
在谈述函数调用和返回值问题之前,先来看看C++中内存分配的问题。
C++编译器将计算机内存分为代码区和数据区,很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据区以及常量区,动态数据区包括堆区和栈区。
一下是各个区的作用:
(1)代码区:存放程序代码;
(2)数据区
&
http://www.cyqdata.cn/cnblogs/article-detail-35994
浅谈C#中的GET和SET访问器
我们在学习C#语法的属性时,都要首先和GET,SET访问器打交道,从英文的字面意思上理解,GET应该就是获得什么什么,而SET应该是设置什么什么,那我们看一下,官方是怎么定义这对访问器的:get是读取属性时进行的操作,set是设置属性时进行的操作。定义一个属性如果只有get,这个属性就是只读的。同样,只有set,属性就是只写的,当然只写的属性我觉的意义不是很大。
接下来我们通过一些
http://www.cyqdata.cn/cnblogs/article-detail-31649
谈谈C#文件监控对象FileSystemWatcher使用感受
最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容。首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间隔不能超过1S,而且每次获取到文本内容都要去分发给WEB服务器做别的操作,而那个文本的写入有时候会频繁,1秒可能多次,但是也有可能在相当长一段时间内是没有任何写入的。
这样一来如果每秒都去访问文件的话,一个是IO问题,还有就是每次操作
http://www.cyqdata.cn/cnblogs/article-detail-5223
浅谈C#中的延迟加载(3)——还原模型的业务规则
啊~~最近的业余时间都用在修改自己的博客上面了,主要是这段时间在网站的留言板上发现很多外国的垃圾广告,于是做了个“IP黑名单”的功能,留言和文章评论也都加了验证码,顺便把后台的代码整理了一下,希望新加的验证码不会对大家留言和发评论造成不便!
今天在博客园上有朋友留言说怎没有写完整,不好意思啊,这段时
http://www.cyqdata.cn/cnblogs/article-detail-4943
浅谈C#中的延时加载(1)——善用委托
这段时间学习了一下NHibernate,顺便了解了一下延时加载的原理和实现等,今天写了篇文章,已经发在我自己的个人博客上,顺便也发到博客园来给大家分享,技术含量比较少,勿要见怪!
原文地址:http://www.youguanbumen.net/Article.aspx?id=69
【原文】
很久以前就听过“延时加载”这个东西,不过没有理解是什么意思,现在算是了解一二了,写
http://www.cyqdata.cn/cnblogs/article-detail-3453
谈CLR的装箱与拆箱
CLR类型系统有两种主要类型—Reference Type和ValueType。前者是在托管堆中被分配内存并接受管理,后者则有两种形态--装箱与未装箱,对于装箱形态的值对象是在托管堆中,未装箱形态的值对象是在栈上分配。 CLR堆上对象和栈上对象的差异 每一个堆上对象都有两个额外的字段,一个是类型引用表的指针,用于实现多态,类似于C++的多态机制,另一个字段是SyncBlockIndex,用于实现CLR线程同步机制。栈上对象则无这两个字段。 装箱的过程 装箱: 在堆上开辟内存,包括2个额外字段+值对象大小。 将值对象复制过去 3.返回新分配对象的地址。 拆箱的过程 1.如果为null,跑出NullReferenceException 2.如果引用指向的不是一个期望对象的已装箱对象,跑出InvalidCastException。 3
http://www.cyqdata.cn/cnblogs/article-detail-2260