pni icon indicating copy to clipboard operation
pni copied to clipboard

每一个参数 都要 new typeClass($typeData) 是不是 new 了太多对象了,性能会有损失吧

Open munggruel opened this issue 8 years ago • 5 comments

foreach 调用函数 ,每一个参数 都要 new typeClass($typeData) 是不是 new 了太多对象了,性能会有损失吧, 本来使用该库就是为了性能,能否改成

['type1'=>data1, 'type2'=>data2, ..., 'typen' => datan],这样 是否可以

munggruel avatar Apr 09 '16 18:04 munggruel

就像 call_user_func_array 一样,参数用数组传递,避免频繁new 对象

munggruel avatar Apr 09 '16 18:04 munggruel

Hi,您好munggruel! 谢谢提意见啊(开心),针对这个issue,我说一下哈~

  1. foreach 循环调用,会重复new对象。可不可以用这个方法?循环使用表示参数类型的对象,每个表示PNIDataType,都有一个成员函数 setValue,用来更改参数,这样就可以重复使用对象了。这个功能我今天加上哈。

2.做这个库性能是一方面,还有的作用是解决PHP无法完成的功能,比如调用机器学习库、图像处理这类C/C++的库。

3.每次调用都要New对象,主要是考虑编程的安全,PHP是弱类型语言,而C是强类型语言,写PHP的人容易在参数类型上不讲究,调用很容易出错,用对象约束并提醒开发者,调用前一定要确认要调用的C函数的参数类型。

zuocheng-liu avatar Apr 10 '16 00:04 zuocheng-liu

Hi,我已经加上了setValue 这个成员函数啦

zuocheng-liu avatar Apr 10 '16 01:04 zuocheng-liu

好的,不知道什么时候能支持windows版本,其实最大的障碍在编译 php extension的dll,普通的windows dll很简单,但是 php那个编译 dll实在太麻烦了

munggruel avatar Apr 11 '16 01:04 munggruel

在windows上,使用cygwin 下面的gcc , 好像是可以的,回头我试一下。

zuocheng-liu avatar Apr 12 '16 02:04 zuocheng-liu