Runnable

strong to refuse


  • 首页

  • 标签

  • 归档

php的yield和生成器

发表于 2017-05-17

相比较迭代器,生成器提供了一种更容易的方法来实现简单的对象迭代,性能开销和复杂性都大大降低。

一个生成器函数看起来像一个普通的函数,不同的是普通函数返回一个值,而一个生成可以yield生成许多它所需要的值,并且每一次的生成返回值只是暂停当前的执行状态,当下次调用生成器函数时,PHP会从上次暂停的状态继续执行下去。

阅读全文 »

php迭代器和yield

发表于 2017-05-16

PHP提供了统一的迭代器接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
Iterator extends Traversable
{
//返回当前元素
abstract public mixed current(void)
//返回当前元素的键
abstract public scalar key(void)
//向下移动到下一个元素
abstract public void next(void)
//返回到迭代器的第一个元素
abstract public void remind(void)
//检查当前位置是否有效
abstract public boolean valid(void)
}

阅读全文 »

mysql查询锁信息

发表于 2017-05-04

MySQL下查询锁信息

SHOW PROCESSLIST;
SHOW OPEN TABLES WHERE In_use > 0;

#运行线程

SHOW GLOBAL STATUS LIKE ‘Threads_running%’;

#链接线程
SHOW GLOBAL STATUS LIKE ‘Threads_connected%’;

#查询数
SHOW GLOBAL STATUS LIKE ‘Queries%’;
SHOW GLOBAL STATUS LIKE ‘Question%’;

#提交数
SHOW GLOBAL STATUS LIKE ‘Com_commit’;

#回滚数
SHOW GLOBAL STATUS LIKE ‘Com_rollback’;
SHOW STATUS LIKE ‘Binlog_cache%’;
SHOW INNODB STATUS;

#日志功能参数查询
SHOW VARIABLES LIKE ‘%pro%’;
SHOW PROFILES;

#开启语句执行时间日志功能
SET profiling=0;

#显示数据日志ID
SHOW PROFILES;

SHOW PROFILE ALL FOR QUERY 839810;

阅读全文 »

explain详解.md

发表于 2017-05-04

在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。

阅读全文 »

面向对象设计的SOLID原则

发表于 2017-05-04
1
S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。

一致性hash算法

发表于 2017-05-04

参考 Consistent hashing

阅读全文 »

elasticsearch5.0升级问题

发表于 2017-03-10

elasticsearch 5.0 安装过程中遇到了一些问题,通过查找资料几乎都解决掉了,这里简单记录一下 ,供以后查阅参考,也希望可以帮助遇到同样问题的你。

阅读全文 »

note

发表于 2017-01-10
  • MVC是观察者模式(Observer), 策略模式(Strategy)和组合模式(Composite)三个设计模式的演变,MVC是模式的组合
  • 高性能离不开异步,异步离不开队列,而其内部都是Producer-Comsumer模式的原理
阅读全文 »

php extension

发表于 2017-01-08

PHP扩展(PECL)跟PHP引擎一样都是使用C语言开发。PHP核心开发组成员鸟哥Laruence使用的是VIM进行PHP开发。
http://www.laruence.com/2011/09/13/2139.html
书籍: http://www.walu.cc/phpbook/
案例: php-src/ext
PECL开发邮件组: http://news.php.net/php.pecl.dev
尽量编写一些phpt测试用例,php-src/tests下有很多参考.
测试时用–enable-debug编译PHP,要做到执行你的扩展逻辑,不输出任何错误信息.
用valgrind检测内存泄露.

阅读全文 »

number bit

发表于 2017-01-04
1
2
3
4
5
6
7
8
9
10
11
12
public function test()
{
$advId = 1458013447;
$id = 5;
echo $total = $advId << 32 | $id;
echo PHP_EOL;

echo $result = $total & 0xFFFFFFFF;
echo PHP_EOL;
echo $result = $total >> 32 & 0xFFFFFFFF;
echo PHP_EOL;
}
1…567

laugh

lanmp, ELK, go, python, vue, 分布式, k8s, docker, CI/CD

62 日志
5 分类
26 标签
© 2020 laugh
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4