- 博客(14)
- 收藏
- 关注
原创 使用Autobahn的远程调用模式
Autobahn提供了远程调用模式(RPC = Remote Procedure Calls),服务器写好供调用的函数并注册一个uri,客户端调用函数时对应的代码就会在服务器上跑一遍并返回结果给客户端。 常用相关函数:服务器端:注册一个服务object用于rpc:registerForRpc(obj, baseUri='')obj指定执行代码时的self,baseuri为客户端
2013-03-27 11:04:55
1440
原创 使用Autobahn的订阅/发布模式
Autobahn提供了一种有趣的订阅/发布模式,服务器端先注册一系列uri,客户端根据自己的需要订阅一些uri。用户可以通过一个uri发布信息,服务器收到后会自动转发让所有订阅了此uri的用户收到信息;当然服务器也可以主动的发布一些信息给某个指定的uri。常用相关函数:服务器端:注册一个uri:registerForPubSub(topicUri, prefixMatch=Fals
2013-03-27 10:33:04
1705
原创 在python中使用websocket
介绍一款很帅的插件AutobahnPython,通过它可以在python中很方便的使用websocket进行通信(基于twisted框架)。这个插件真正强大的地方是它提供了一个 发布/订阅模式,具体内容有空再写,先简单介绍一下如何建立传统的连接。下载地址:http://autobahn.ws/python/downloads 建立服务器:# 必须的模块from twisted
2013-03-25 12:18:22
9411
原创 jquery的websocket插件
WebSocket是HTML5一种新的协议。顾名思义,它在服务器和浏览器之间建立了全双工通信,避免了传统的轮询。它也由于ajex,无需发送请求,服务器可以主动传输数据给客户端。jquery好像没有官方的插件,但可以从http://code.google.com/p/jquery-websocket/下到名为jQuery Web Sockets Plugin v0.0.1的插件。要使用此插件
2013-03-25 11:49:30
16628
原创 Visual Studio中Debug模式中的inline函数对效率的影响
Debug模式效率比Release低是众所周知的,但有时候两者的差别十分之大。 一个原因是Debug模式下默认不会对函数进行内联(即使你使用了inline关键字!),不内联的函数在调用时先压栈保护现场、抬高栈顶分配临时变量、执行函数体、释放临时变量、恢复现场、检查栈平衡等一系列操作,占用大量时间。而如果函数有返回值且返回的是一个需要构造的变量,则会在返回时调用构造函数进一步的降低效率。
2013-03-21 12:56:40
1270
原创 用PDO连接SQL Server数据库
首先需要安装Microsoft Drivers 3.0 for PHP for SQL Server,链接:http://www.microsoft.com/en-us/download/details.aspx?id=20098根据需要将对应的dll加入到php.ini的extension中,我用的是php_pdo_sqlsrv_54_ts.dll如此PDO的环境配置完成 测试一
2013-03-21 12:54:19
2037
原创 在Windows系统下创建硬链接
众所周知Unix系统下创建链接都是通过ln命令进行,而Windows中往往是通过图形界面创建链接。但这种方法创建的只是软链接,而硬链接的创建也要通过一条命令mklink进行。 如图,如果我们想给一个文件1.txt创建一个叫2.txt的硬链接,我们只需执行mklink /h 2.txt 1.txt注意文件顺序!1.txt是原有的文件,2.txt是创建的硬链接。 得到
2013-03-19 10:01:07
1104
原创 多线程计算pi效率对比分析
继续昨天的计算pi的程序 分配不同的线程数量得到的不同的运行时间对比可以看到很明显的 从一个线程变成两个线程确实时间减少了一般左右,但是继续增加线程数量却不怎么影响结果。这是因为我电脑的CPU型号为Intel 酷睿i3 370M,双核四线程,所以双线程的程序已经占用了全部的系统资源了。为了证明这个观点,请看下图:分别是线程数为1、2、3、4时的运行CPU记录
2012-12-05 14:30:10
3706
1
原创 WaitForMultipleObjects当数量过多时失效?
多线程编程时用WaitForMultipleObjects函数可以很方便的等待多个线程的退出。但是在一个并行计算pi的程序中出现了一些小问题:为了对比测试不同线程数量的效率,不断加大 线程数,而当线程数大于64时却出现了下图的结果而且第一行的输出基本上是一运行就输出,而下面的“任意键继续”却等了一会儿才跳出来,显然程序并没有按照设计等到所有线程计算完毕后才继续执行输出pi值。 百度
2012-12-05 00:33:27
1955
原创 千万不要赶时髦
VS2012已经发布好一段时间了,我从11Beta开始就一直在用,感觉挺好用的。于是前不久装了Win8之后就没有装2010而装的是2012,平常写写程序也挺好的直到最近出了点问题。 先是要用到Intel Parallel Studio,最新版也只支持2010和之前的几个版本,因为用到的不多久抱着侥幸心理搞了个虚拟机装了2010;但是最近又要用到openCV,其中CMake要用到编译器,但是
2012-12-02 21:13:16
589
原创 OpenGL中鼠标拾取
OpenGL中鼠标拾取的实现方式有很多种:1、用glPushName,glLoadName,glSelectBuffer和glRenderMode等系列函数通过OpenGL的绘制管线实现;2、在鼠标点击后迅速将不同的物体用不同的颜色绘制,根据鼠标点下的点颜色判断选中的物体,此方法在绘制速度慢或者物体过多时不适用; 3、通过几何关系计算是否选中,主要介绍这种方式:鼠标的点选给出了
2012-11-24 10:35:57
1299
原创 OpenGL中的鼠标移动和锁定
在OpenGL的图形化界面中不可避免会使用到鼠标的操作,而想让视角跟着鼠标一起移动并不是一件方便的事。为了达到这个目的需要根据鼠标的移动不断地改变gluLookAt函数中传入的参数,以改变视角。而要使视角的变化与鼠标移动的方向大小均一致,需要进行一定的矩阵计算。为此我们自己写了个(三维)Vector类,实现了基本的向量运算,包括点乘(运算符重载*)和叉乘(OuterProduct函数),以及一个友
2012-11-24 02:36:12
3454
原创 OpenGL中三位物体的透明实现
想要画出透明物体就要先将后面的不透明物体按正常z-buffer算法画好,然后再将透明的物体叠合(而不是替换)到现有z-buffer上,要实现这个要求,就需要调用glDepthMask(GL_FALSE);函数,将深度缓冲区设置为只读形式。 具体在我的程序中的用法如下:vector TransparentFaces;for (vector::size_type nIndex = 0;
2012-11-24 02:05:03
1388
转载 OpenGL相关资源
最近在学习OpenGL相关编程,也到网上查了些资料,现将部分找到的认为好的资源放着备查 这是一个关于OpenGL光照的博客http://www.cppblog.com/zmj/archive/2006/01/17/2814.html 这是基本上涵盖了各个方面,说的也很详细http://www.cppblog.com/doing5552/archive/2009/01/08/
2012-11-24 01:50:26
389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人