大量小数据拷贝,直接内存赋值或数组赋值,要快于memcpy

在测试图像旋转过程中,发先每个channel进行memcpy速度要明显慢与直接内存byte赋值*dst++=*src++,或dst[0]=src[0].

memcpy 要8.8ms,

直接内存赋值只有1.8ms

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最近一段时间一直在研究PHP高性能编程,颇有心得,故而将其整理成资料,分享给大家,欢迎吐槽。要写出高性能程序,不管是PHP、JAVA还是其它编程语言不外乎就是控制程序的空间复杂度和时间复杂度,时间复杂度就不用多言了,它靠的是算法,在编写时不要做些无用的计算。这里主要讲的是空间复杂度【文件内容和文档资料一致,可以不用下载】。主要有以下几个步骤: 一、深刻理解变量赋值原理,然后才知道如何控制空间复杂度 $a='1232'; $b=$a;//这个是值传递,这里虽然是值传递,但PHP为了提升性能采用COPY-ON-WRITE【写时拷贝】,也就是说两个变量的地址指向的是同一地方。 $b="4546";//此时才会申请一块新的内存赋值。 再举三个例子以便于理解: $a=array('a','cc','ds'); $b=$a; $b[1]='123';//此时才给$b变量申请内存块,并拷贝$a变量值到$b,最后赋值$b[1]的值为'123';$b的值为array('a','123','ds'); $a=new A(); $b=$a;//这里就是地址引用,执行同一地址 $a="12312312"; $b=&a;//这里就是地址引用,执行同一地址 二、字符串拼接 $s1='123'; 第一种:$s1=$s1.'456';//这种效率最低下 第二种:$s1.='456';//效率高 第三种:将它存入数组,最后使用impolde函数拼接,效率高。 三、如果有PHP内置函数,请尽量使用内置函数,内置函数是C语言编写,执行效率高。 四、循环编写:非法必要,否则尽量不要循环体内重复申请内存空间。 五、对未用的变量,即使使用unset()释放内存空间,特别是大集合的数组。 六、在网上搜索到一些东西(这个前提就得看你对PHP函数的精通程度),但是深刻理解以上几点,就可以很好的控制空间复杂度和时间复杂度,性能肯定不会差的。 1.字符串使用单引号 2.spilt分割explode函数效率高等等很多。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值