Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
munggruel opened this issue Apr 9, 2016 · 5 comments

Comments

@munggruel
Copy link

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

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

@munggruel
Copy link
Author

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

@zuocheng-liu
Copy link
Owner

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

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

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

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

@zuocheng-liu
Copy link
Owner

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

@munggruel
Copy link
Author

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

@zuocheng-liu
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants