随笔分类 -  [21]写点代码

摘要:随着时间的发展,现在的虚拟机技术越来越成熟了,在有些情况下,Java,.Net等虚拟机密集计算的性能已经和C++相仿,在个别情况下,甚至还要更加优秀。本文详细分析几个性能测试案例,探讨现象背后的原因。 阅读全文
posted @ 2019-07-31 23:26 xiaotie 阅读(5694) 评论(15) 推荐(12) 编辑
摘要:本文详细介绍了C#指针编程,文章较长,主要内容为:(1)简洁优美的代码;(2)C# 指针基础;(3)几种常用用法;(4)C# 指针操作的几个缺点;(5)引入模板机制;(6)迭代器;(7)风情万种的Lambda表达式;(8)与C/C++的比较 阅读全文
posted @ 2012-07-06 18:21 xiaotie 阅读(52065) 评论(86) 推荐(81) 编辑
摘要:我们玩技术,不是被技术玩。Coding是快乐的,而非苦逼的。.Net/C#这个神器竟然天天有人吐槽。看不下去鸟。在top10语言中,C#是最优美的语言,没有之一。在top10语言中,C#所可用的标准库及可获得其它库是最强大的之一,这个必须带之一,因为有java在。在top10语言中,C#语言是性能最高的语言之一(开unsafe指针后可以和C一较高下,结果100%是C#败,不过性能差距并不大,C#非托管程序性能约为C程序的四分之三),在top10语言中,C#是内存管理机制最完善的语言(即可用GC,又可不用GC,虽然C++也能做到,但是要靠第三方库,且使用起来不直观不方便)。此外,C#的类库极其. 阅读全文
posted @ 2012-06-12 10:52 xiaotie 阅读(34734) 评论(132) 推荐(75) 编辑
摘要:Slider是常用控件。Adobe官方提供的控件中,fl库所带的控件不好用,便有兄弟《自制FlashSlider滚动条》。Flex库中也提供有Slider控件,但是Flex控件太重量级,动不动就是一二百K的尺寸,很多场合没法用。并且,Flex的Slider也不容易定制,比如,它的highlighttrack比track要低1像素,这在很多情况下是不合适的。本文修改MinimalComps项目的Slider控件代码,提供一个小巧的Slider控件解决方案,本方案具有以下优势:(1)小巧。不依赖于fl控件或Flex库,使用本控件不会让程序尺寸增加多少;(2)容易定制。很容易定制highlightt 阅读全文
posted @ 2012-02-11 19:29 xiaotie 阅读(2699) 评论(11) 推荐(3) 编辑
摘要:haXe是高级语言的高级语言,可以将一个haXe程序转换为其它的高级语言,如JS。haXe有很多优点,比如,强类型、泛型、内联、宏、动态语言特性、命名空间……,用haXe写程序比用JS写程序舒服得多。本文尝试使用haXe开发js程序,搭建一个前端mini型mvc例子。 语言:haXe。haXe编译器可以把haXe程序编译成js程序。 开发工具:FlashDevelop。 haXe的简介及安装见《html5 canvas 版 hello world! 暨haXe简介》。开发之前,需要修改Flash Develop配置,将Tools->Program Setting->HaXeCont 阅读全文
posted @ 2011-08-26 10:06 xiaotie 阅读(6664) 评论(5) 推荐(5) 编辑
摘要:如何直接有效的解决问题是一门艺术。我们是做产品、做系统、做服务的,不是玩技术的,需要做的是在最短的时间内以最有效的方式来解决工作中面对的难题。就在刚才,用了半小时不到时间,俺用一种极其简单、直接、有效、霸道的方法解决了照片的反转负冲特效问题。这种解决问题的思路值得总结推广。 反转负冲(反转片)是一种摄影拍摄技术,它通过拍摄后反转冲洗,得到色彩鲜艳的照片,非常养眼。现在都是数码相机了,可以通过图像... 阅读全文
posted @ 2010-11-30 01:01 xiaotie 阅读(5275) 评论(24) 推荐(11) 编辑
摘要:欲练神功,引刀自宫。为了避免内存管理的烦恼,Java咔嚓一下,把指针砍掉了。当年.Net也追随潮流,咔嚓了一下,化名小桂子,登堂入室进了皇宫。康熙往下面一抓:咦?还在?——原来是假太监韦小宝。打开unsafe选项,C#指针就biu的一下子蹦出来了。指针很强大,没必要抛弃这一强大的工具。诚然,在大多数情况下用不上指针,但在特定的情况下还是需要用到的。比如:(1)大规模的运算中... 阅读全文
posted @ 2010-07-19 08:22 xiaotie 阅读(5153) 评论(8) 推荐(3) 编辑
摘要:同样的算法,为什么会有数量级的性能差异?问题起源于几个月前与一位网友的探讨。这位网友在写婚纱抠图程序。一般来说,婚纱摄影的图像都较大,甚至大至几千万像素。这位网友使用C#开发,他的问题就在于性能。当时建议他使用XNA开发,但问题又出来了:加载一副图像的时间竟需要好几秒!而我自己写的C#加载几千万像素图像及图像转换操作,都是瞬间完成。为什么会有如此大的差别呢?这就是本文要说的。 问题主要处在程序的... 阅读全文
posted @ 2010-07-02 04:59 xiaotie 阅读(4789) 评论(17) 推荐(17) 编辑
摘要:在《C#模板编程(1):有了泛型,为什么还需要模板?》文中,指出了C#泛型的局限性,为了突破这个局限性,我们需要模板编程。但是,C#语法以及IDE均不支持C#模板编程,怎么办呢?自己动手,丰衣足食,编写自己的C#预处理器。一、C#预处理机制设计问题的关键就是在C#的源文件中引入include机制,设计下面的语法:(1) 引入:#region include <path> #endreg... 阅读全文
posted @ 2010-03-25 00:04 xiaotie 阅读(5265) 评论(4) 推荐(1) 编辑
摘要:C#泛型编程已经深入人心了。为什么又提出C#模板编程呢?因为C#泛型存在一些局限性,突破这些局限性,需要使用C#方式的模板编程。由于C#语法、编译器、IDE限制,C#模板编程没有C++模板编程使用方便,但是,仍然可以解决一些问题。   下面先看C#泛型编程的两个限制: (1)类型约束问题。 C#泛型的类型约束是个很严重的问题。 假设需要写一个泛型方法,这个方法有2个参数,然后方... 阅读全文
posted @ 2010-03-22 16:22 xiaotie 阅读(16255) 评论(8) 推荐(2) 编辑
摘要:两条像面试用的编程问题,和我的囧事 的第一题“设计一个函数f, 使得它满足:f(f(x))=-x,这里输入参数为32位整型”,很有意思。文中作者提及的几种解法很优雅。这里谈谈我的理解。下面的理解比原文繁琐,不过更适合推广到一般情况。 最直接的理解是f(x)=i*x;这里x是复数。但问题是输入参数是整数,f(x)就是复数了,无法再次作为参数输入。 我的第一直觉是:能不能用整数表示复数呢? 为了... 阅读全文
posted @ 2010-03-04 16:57 xiaotie 阅读(2489) 评论(12) 推荐(3) 编辑
摘要:(1) OO是朴素的不是教条的 ... (2) 使用泛型将这个问题再一般化。 阅读全文
posted @ 2009-06-03 18:41 xiaotie 阅读(2366) 评论(8) 推荐(0) 编辑
摘要:没有最好的架构,只有最合适的架构。循证架构是《Expert One-on-One J2EE Development without EJB》一书中推崇的架构思路,用俺们的话说就是摸着石头过河,找最适合自己的架构。 阅读全文
posted @ 2009-05-21 05:53 xiaotie 阅读(5797) 评论(15) 推荐(1) 编辑
摘要:方法、手段、目的,以及胡言乱语。 阅读全文
posted @ 2009-05-19 06:12 xiaotie 阅读(2904) 评论(12) 推荐(0) 编辑
摘要:实现.net下的动态代理 一文使用动态代理实现了 Ducking Typing,解决了文中的第一个问题,下面,向第二个问题进军——mixin。 阅读全文
posted @ 2009-02-01 15:09 xiaotie 阅读(3019) 评论(6) 推荐(0) 编辑
摘要:通过动态代理可以解决接口约束问题;可以快速生成Wrapper类;可以实现AOP功能。本文提供了这样一个动态代理工厂的原型实现(因为时间有限,只是实现了部分功能,其它功能可参考文中方法实现)。 阅读全文
posted @ 2009-02-01 08:47 xiaotie 阅读(8133) 评论(14) 推荐(1) 编辑
摘要:在侃侃而谈OO,侃侃而谈设计模式,侃侃而谈面向对象的诸多原则之前,我们首先应该掌握一点:封装。掌握好封装的原则和技巧之后,就算使用的不是OO语言,也能构造出框架优美的程序。将这些原则用在程序之外,也能得到出奇的效果。《设计规则-模块化的力量》(http://www.douban.com/subject/1737636/)将封装与模块化放在神坛的高位,它们配得上这个位置。这是我们解决复杂性问题的最基... 阅读全文
posted @ 2008-11-21 07:59 xiaotie 阅读(5208) 评论(29) 推荐(1) 编辑
摘要:讲关于树的一些概念和算法。可由此下载 原书网站:http://tata.gforge.inria.fr/ 阅读全文
posted @ 2007-11-12 09:47 xiaotie 阅读(587) 评论(0) 推荐(0) 编辑
摘要:将树匹配问题归整为字符串匹配问题,来提高解决方案的柔性。 阅读全文
posted @ 2007-07-19 11:40 xiaotie 阅读(4114) 评论(12) 推荐(0) 编辑
摘要:采用泛型实现的State模式代码量比不采用泛型实现的要少,更大的优点是,泛型实现中各种状态的定义比较短,这些定义可以放在一起,这样写起来也不容易写错,维护起来也比较简单。 阅读全文
posted @ 2006-12-18 02:31 xiaotie 阅读(3914) 评论(3) 推荐(2) 编辑