帮同学制作的一个AJAX风格的购物车WEB演示,(关键字PHP JQUERY SQLITE) /Files/bman/DoWebShopping.rar
同学制作的一个微型HTTP服务器实作 (关键字 C# HTTP) http://code.google.com/p/weiwei/
配置文件段:
<section name="Httpd.RouterDict"
type="wwHttpd.RouterDictSection, wwHttpdTest.dll, Version=1.0.0.0, PublicKeyToken=Null"
allowExeDefinition="MachineToApplication" />
出错代码段
routerDict = ((RouterDictSection)cfg.
GetSection(routerDictKey)).ChildElements;
(异常是不能把 RouterDictElementCollection转换为 RouterDictElementCollection, ChildElements返回RouterDictElementCollection, routerDict是RouterDictElementCollection引用)
问题解决记录:
这册的问题可能是这个方面的问题引起的,我通过调试检测到了程序在运行时调用了2次相同名字的程序DLL文件, 可能是由于我用xunit进行测试的缘故,在读配置文件中的自定义节的时候程序加载了临时文件中的我测试的DLL的副本(不知道为什么为生成这个副本的,.NET自动生成的)所以造成了虽然2个类的名字和命名空间相同,但其实是两个DLL中同名的类,所以不能转换,目前要想办法解决这个加载路径和程序集部署问题
又想到了一点,就是由于我把TEST的DLL和XUNIT的UI程序方置在两个不同的目录中,因为读取配置文件中的节的时候如果遇到自定义节的时候会读取相应自定义类,由于UI是EXE,我测试的只是一个DLL,配置文件跟着EXE走,所以.NET加载规则先搜索EXE目录下面有没有相关DLL,没有就去其他PATH里找,所以就在读取配置文件的时候找到了副本DLL,而我类型转换的代码执行是在测试DLL中,所以就造成了这个类型的歧意
问题解决了,我查看了xunit的源代码,发现xunit在读取要测试的DLL的时候会先创建一个appdomain(应用域)这样在测试DLL中的所有TYPE都在这个域的assembly中了,而在读配置文件的时候是通过currentAppdomain(程序当前域)读取的,这样从配置文件生成的对象和DLL中的程序的类型转换属于不同的TYPE了,现在就是如果要测试这种情况的代码用XUNIT好象有些问题,不知道有没有其他的解决方法
PupAllocator
一个用C++写的自适应的统一内存回收的内存池分配器.
小巧,方便,性能测试在我的环境中debug模式下比普通malloc, free快30%左右,但在release模式下速度提升比较小在5%左右.
目前需要进一步测试是否有内存泄露,更多的实践使用和对于参数设置对内存的使用量影响比较大.
开发工具是VS2008
代码打包(0.3
beta): /Files/bman/AllocatorSY.rar概念图:
参考资料:
http://cpp.winxgui.com/cn:autofreealloc