返回信息流☆─────────────────────────────────────☆
preandpre (pop) 于 (Sat Jun 6 20:01:06 2009) 提到:
下面有两种方案执行程序
1.C语言访问数据库 then C语言执行算法(算法比较复杂,需要很长时间)then c语言将结果返回给PHP
2.php直接读数据库并执行这个算法
请问哪种方案比较好,我个人比较偏向2,但是又说不太清楚2哪里好,请各位大牛赐教
☆─────────────────────────────────────☆
yegle (我是白白胖胖的听话的乖小狗) 于 (Sat Jun 6 20:04:23 2009) 提到:
直接用c写php函数不行?
【 在 preandpre (pop) 的大作中提到: 】
: 下面有两种方案执行程序
: 1.C语言访问数据库 then C语言执行算法(算法比较复杂,需要很长时间)then c语言将结果返回给PHP
: 2.php直接读数据库并执行这个算法
: ...................
☆─────────────────────────────────────☆
preandpre (pop) 于 (Sat Jun 6 20:10:34 2009) 提到:
是个网站的子模块,所以不能这么干~
【 在 yegle 的大作中提到: 】
: 直接用c写php函数不行?
☆─────────────────────────────────────☆
dickfu (潇湘天下|小付寨主) 于 (Sat Jun 6 20:59:05 2009) 提到:
就用2就行了
【 在 preandpre (pop) 的大作中提到: 】
: 下面有两种方案执行程序
: 1.C语言访问数据库 then C语言执行算法(算法比较复杂,需要很长时间)then c语言将结果返回给PHP
: 2.php直接读数据库并执行这个算法
: ...................
☆─────────────────────────────────────☆
preandpre (pop) 于 (Sat Jun 6 21:00:55 2009) 提到:
得说出理由啊~
【 在 dickfu 的大作中提到: 】
: 就用2就行了
☆─────────────────────────────────────☆
reeze (Reeze) 于 (Sat Jun 6 21:41:29 2009) 提到:
如果算法时间长用php执行更慢啊。。。。如果算法复杂。就直接C处理吧。如果要给php留接口就给php也写个接口调用就好了。。
☆─────────────────────────────────────☆
reeze (Reeze) 于 (Sat Jun 6 22:25:25 2009) 提到:
如果算法时间长用php执行更慢啊。。。。如果算法复杂。就直接C处理吧。如果要给php留接口就给php也写个接口调用就好了。。
☆─────────────────────────────────────☆
dickfu (潇湘天下|小付寨主) 于 (Sat Jun 6 22:42:12 2009) 提到:
有些操作可以直接在查询里面就做了
【 在 preandpre (pop) 的大作中提到: 】
: 得说出理由啊~
☆─────────────────────────────────────☆
chit (chit) 于 (Sat Jun 6 23:01:57 2009) 提到:
其实php的执行效率和C没有多少区别的
【 在 preandpre (pop) 的大作中提到: 】
: 下面有两种方案执行程序
: 1.C语言访问数据库 then C语言执行算法(算法比较复杂,需要很长时间)then c语言将结果返回给PHP
: 2.php直接读数据库并执行这个算法
: ...................
☆─────────────────────────────────────☆
dragon2000 (龙之梦工作室) 于 (Sat Jun 6 23:06:25 2009) 提到:
方法2的好处是直接处理,不用解决什么互相调用的接口问题。代码写得好的话,性能也未必会差。我也经常这么做。
方法1好像没有必要把结果返回给PHP。直接用C写成CGI程序,浏览器直接访问CGI就是了。麻烦的问题是如果PHP和CGI之间有session之类的权限认证,自己要用安全算法去处理(类似单点登录功能)。
加一个方法3:假如运算时间非常长,超过浏览器等待时限(超过15秒就算很长了,这在大数据量统计的时候很常见),通常就用C做成后台服务程序,只和数据库打交道。PHP也只和数据库打交道,不过是存放运算参数、取计算结果和显示。
☆─────────────────────────────────────☆
dragon2000 (龙之梦工作室) 于 (Sat Jun 6 23:16:13 2009) 提到:
用PHP做个1280位离散对数加密程序,已经可以看出明显区别,不过勉强还可以接受。
如果用PHP做PPM数据压缩,不用试,我肯定到了次序3就会直接挂掉。
算法复杂起来真的没谱。
【 在 chit 的大作中提到: 】
: 其实php的执行效率和C没有多少区别的
☆─────────────────────────────────────☆
chit (chit) 于 (Sat Jun 6 23:45:58 2009) 提到:
如果真的有那么复杂直接exec就完了。
【 在 dragon2000 (龙之梦工作室) 的大作中提到: 】
: 用PHP做个1280位离散对数加密程序,已经可以看出明显区别,不过勉强还可以接受。
: 如果用PHP做PPM数据压缩,不用试,我肯定到了次序3就会直接挂掉。
: 算法复杂起来真的没谱。
: ...................
☆─────────────────────────────────────☆
coolfantasy (Cool) 于 (Sat Jun 6 23:52:49 2009) 提到:
PHP 很耗 CPU
☆─────────────────────────────────────☆
coolfantasy (Cool) 于 (Sat Jun 6 23:57:14 2009) 提到:
方法4: PHP Extension
【 在 dragon2000 (龙之梦工作室) 的大作中提到: 】
: 方法2的好处是直接处理,不用解决什么互相调用的接口问题。代码写得好的话,性能也未必会差。我也经常这么做。
: 方法1好像没有必要把结果返回给PHP。直接用C写成CGI程序,浏览器直接访问CGI就是了。麻烦的问题是如果PHP和CGI之间有session之类的权限认证,自己要用安全算法去处理(类似单点登录功能)。
: 加一个方法3:假如运算时间非常长,超过浏览器等待时限(超过15秒就算很长了,这在大数据量统计的时候很常见),通常就用C做成后台服务程序,只和数据库打交道。PHP也只和数据库打交道,不过是存放运算参数、取计算结果和显示。
: ...................
☆─────────────────────────────────────☆
chit (chit) 于 (Sun Jun 7 00:07:19 2009) 提到:
前面有人说了,呵呵
【 在 coolfantasy (Cool) 的大作中提到: 】
: 方法4: PHP Extension
☆─────────────────────────────────────☆
dragon2000 (龙之梦工作室) 于 (Sun Jun 7 01:55:52 2009) 提到:
受到PHP解释器的影响,反而更多莫明其妙的问题,这个真的没弄明白了。但愿别人没碰上。
对了,如果exec的程序出错的时候,应该怎么调试查错?直接PHP出错我可以调试,纯C程序出错也可以调试,就是这个觉得比较棘手。
【 在 chit 的大作中提到: 】
: 如果真的有那么复杂直接exec就完了。
☆─────────────────────────────────────☆
dickfu (潇湘天下|小付寨主) 于 (Sun Jun 7 03:00:38 2009) 提到:
exec不就是纯c程序么...
【 在 dragon2000 (龙之梦工作室) 的大作中提到: 】
: 受到PHP解释器的影响,反而更多莫明其妙的问题,这个真的没弄明白了。但愿别人没碰上。
: 对了,如果exec的程序出错的时候,应该怎么调试查错?直接PHP出错我可以调试,纯C程序出错也可以调试,就是这个觉得比较棘手。
☆─────────────────────────────────────☆
coolfantasy (Cool) 于 (Sun Jun 7 09:31:58 2009) 提到:
好吧。。。
【 在 chit (chit) 的大作中提到: 】
: 前面有人说了,呵呵
☆─────────────────────────────────────☆
coolfantasy (Cool) 于 (Sun Jun 7 09:33:06 2009) 提到:
exec 可以捕获 C 程序的返回值,我觉得对调试有利
【 在 dragon2000 (龙之梦工作室) 的大作中提到: 】
: 受到PHP解释器的影响,反而更多莫明其妙的问题,这个真的没弄明白了。但愿别人没碰上。
: 对了,如果exec的程序出错的时候,应该怎么调试查错?直接PHP出错我可以调试,纯C程序出错也可以调试,就是这个觉得比较棘手。
☆─────────────────────────────────────☆
dragon2000 (龙之梦工作室) 于 (Sun Jun 7 10:26:18 2009) 提到:
好像是先执行一段PHP程序,然后exec去调用C程序的吧?如果我没理解错的话。
问题就是单独调试PHP没错,单独调试C也没错,合一起exec就可能出问题。想模拟出一种exec的环境来调试也不行,模拟之后错误不能重现。
exec用来整合两个已有的C和PHP程序是比较省事,但如果是自己开发的程序,感觉上复杂度低的程序不如直接写成PHP,复杂度高的不如单独执行的C程序。
【 在 dickfu 的大作中提到: 】
: exec不就是纯c程序么...
☆─────────────────────────────────────☆
dragon2000 (龙之梦工作室) 于 (Sun Jun 7 10:36:03 2009) 提到:
如果是不太复杂的程序,怎么调试都能很容易查出问题,要不要返回值都影响不大。
复杂如7-zip的程序,单步跟踪、插值测试都难奏效,区区返回值的信息量实在起不了多大帮助。
【 在 coolfantasy 的大作中提到: 】
: exec 可以捕获 C 程序的返回值,我觉得对调试有利
☆─────────────────────────────────────☆
BookMoth (书中蠹鱼) 于 (Sun Jun 7 20:19:06 2009) 提到:
我发现……dragon2000特喜欢跟人较劲……
☆─────────────────────────────────────☆
BookMoth (书中蠹鱼) 于 (Sun Jun 7 20:19:29 2009) 提到:
唔……居然能发帖了。真好。留念
☆─────────────────────────────────────☆
dragon2000 (龙之梦工作室) 于 (Sun Jun 7 22:12:35 2009) 提到:
这也算较劲?意见一样的时候我就不发言了,没有新信息。
人人的经历都不一样,不是说我的意见就会适合其他人。
顺便补充:我调试时不怎么依赖返回值,而是更多地利用自己程序运行生成的日志信息,需要什么信息就保存什么日志。
这也是因为很少用exec,以便尽量减少中间环节——前面说过用exec可能会很省事(例如调用系统功能,本身系统错误很少),但是我这里经常都不省事。
☆─────────────────────────────────────☆
BookMoth (书中蠹鱼) 于 (Sun Jun 7 22:45:41 2009) 提到:
这要不算,上次include肯定是要算的。。。。。
【 在 dragon2000 的大作中提到: 】
: 这也算较劲?意见一样的时候我就不发言了,没有新信息。
: 人人的经历都不一样,不是说我的意见就会适合其他人。
: 顺便补充:我调试时不怎么依赖返回值,而是更多地利用自己程序运行生成的日志信息,需要什么信息就保存什么日志。
: ...................
☆─────────────────────────────────────☆
dragon2000 (龙之梦工作室) 于 (Sun Jun 7 23:48:05 2009) 提到:
include那个问我算是问出东西了(虽然是异类的东西),我以为我也会问出别的东西。
不过有机会找到新信息,还是不容错过。当然有人肯讨论才行。
☆─────────────────────────────────────☆
coolfantasy (Cool) 于 (Mon Jun 8 10:34:11 2009) 提到:
支持 dragon2000
我喜欢看他发帖
没有碰撞就不精彩了
☆─────────────────────────────────────☆
chit (chit) 于 (Mon Jun 8 10:55:34 2009) 提到:
撞!
【 在 coolfantasy (Cool) 的大作中提到: 】
: 支持 dragon2000
: 我喜欢看他发帖
: 没有碰撞就不精彩了
: ...................
这是一条镜像帖。来源:北邮人论坛 / www-technology / #9833同步于 2010/4/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
[合集] 小女子弱问php调用c语言的问题
xw2423
2010/4/11镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。