Lastest

js中带var定义变量和不带var的区别

面试时候被问到var a=1和a=1的区别没打上来,遗憾啊 测试 先来测试一波var a=1和a=1的区别吧 console.log(b) // 会报错 b = 1 VM249:1 Uncaught ReferenceError: b is not defined at <anonymous>:1:13 console.log(a) // 后续使用var定义变量,不会报错,没有初始化会显示undefined var a = 1 VM215:1 undefined undefined 分析 猜测js在启动的时候会首先扫描所有var定义的变量,定义出来,所以console.log时候不会报错

Socket的11种状态

Socket的11种状态 Socket状态汇总 客户端 SYN_SEND FIN_WAIT1 FIN_WAIT2 CLOSING TIME_WAIT 服务器 LISTEN SYN_RECV CLOSE_WAIT LAST_ACK 共有 CLOSED ESTABLISHED

背包九讲1之01背包

九个问题 01背包 完全背包 多重背包 混合背包 二维混合背包 分组背包 背包问题求方案熟 求背包问题的方案 有依赖的背包 感谢: https://www.youtube.com/watch?v=nleY0-eexps 01背包 问题描述 问题描述 有N件物品和一个容量V的背包,第i件物品体积vi,价值是wi. 求解将那些物品装入背包,可是这些物品总体积不超过背包容量,且总价值最大 输入格式 第一行两个整数, N和V, 用空格隔开, 分别表示物品数量和背包容积 接下来有N行, 每行有两个整数vi, wi, 分别表示第i件物品的体积和价值 输出格式 一个整数, 表示最大价值 数据范围 0 < N, V <1000 0 < vi, wi < 1000 输入样例 4 5 1 2 2 4 3 4 4 5 输出样例 8 算法分析 我们用一个二维数组f[n][m]存储所有状态,n表示商品总数,m表示背包容量。m,n > 0 f[i][j]表示只考虑前i个物品,总体积是j的情况下,总价值最大是多少 i,j取值范围 0<i<=n, 至少一个商品,之多n个商品; 0<=j<=m,重量最小可以是0(刚好用完),最大可以是m 如何求解f[i][j]? 对于每一个f[i][j], 我们哟两种选择, 不选择它或者选泽它。 不选第i个商品...

使用phinx做database migration

安装 使用compose安装, 命令 php composer.phar require robmorgan/phinx 项目根目录创建db/migrations文件夹,然后执行如下命令(windows系统) λ vendor\bin\phinx init 此时根目录生成了phinx.yml文件。打开修改数据库连接信息,此处我们只设置development数据库连接 paths: migrations: '%%PHINX_CONFIG_DIR%%/db/migrations' seeds: '%%PHINX_CONFIG_DIR%%/db/seeds' environments: default_migration_table: phinxlog default_database: development production: adapter: mysql host: localhost name: production_db user: root pass: '' port: 3306 charset: utf8 development: adapter: mysql table...

c++虚函数和多态

本实验通过两组实验来对比virtual对函数执行情况的影响。第一组实验用于验证virtual关键字对析构函数执行顺序的影响。第二组实验用于virtual关键字对一般函数执行的影响。 实验1:virtual析构函数 类结构:假设有基类A,A有派生类B1和B2,B2有派生类B3。 我们用三组实验来对照virtual关键字对析构函数执行的影响 基类A的析构函数~A不加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual 基类A的析构函数~A加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual,子类B3析构函数不加virtual 基类A的析构函数~A加virtual关键字,子类B1析构函数加virtual,子类B2析构函数加virtual 实验1.1 基类A的析构函数~A不加virtual关键字,子类B1析构函数加virtual,子类B2析构函数不加virtual #include <iostream> using namespace std; class A{ public: ~A(); }; A::~A(){ cout<<"destruct A"<<endl; } class B1 : public A{ public: virtual...

php in_array的坑以及其实现

先来看一段代码 <?php $array = ["a", "b", "c"]; var_dump(in_array(0, $array)); 这东西的输出是true, 虽然数组里并没有0 $array = ["a", "b", "c"]; var_dump(in_array(0, $array, true)); 这东西的输出是false!!! 文档 http://php.net/manual/en/function.in-array.php 很简单没啥可说的 in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool 源码 https://github.com/php/php-src/blob/master/ext/standard/array.c /* {{{ proto bool in_array(mixed needle, array haystack [, bool strict]) Checks if the given value exists in the array */ PHP_FUNCTION(in_array) { php_search_array(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); } /* ...

godaddy生成ssl证书

生成crt和private key openssl req -new -newkey rsa:2048 -nodes -keyout your_domain_name.key -out your_domain_name.csr 打开godaddy把生成的your_domain_name.csr提供给godaddy。godaddy会去生成证书。 下载godaddy证书。两个文件,一个大概叫做85814333f334c3c5d.crt,另一个大概叫做叫做gd_bundle-g2-g1.crt。把两个文件上传到服务器某一目录下。执行如下操作合并两个文件 cat 85814333f334c3c5d.crt gd_bundle-g2-g1.crt >> your_domain_name.cst 打开nginx网站配置文件,加入 listen 443 ssl http2; ssl on; ssl_certificate /存储路径/your_domain_name; ssl_certificate_key /存储路径/your_domain_name.cst; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "...

OpenCart 3.x使用SwiftMailer发送邮件

描述 使用系统内置SMTP(system/library/mail/smtp.php)发邮件过程中,html邮件内容总是无法正确处理。 分析 OpenCart 3.x发邮件相关代码结构 mail接口 <?php // system/library/mail.php /** * @package OpenCart * @author Daniel Kerr * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/) * @license https://opensource.org/licenses/GPL-3.0 * @link https://www.opencart.com */ /** * Mail class */ class Mail { protected $to; protected $from; protected $sender; protected $reply_to; protected $subject; protected $text; protected $html; protected $attachments = ...

基于Swoole重构OpenCart启动代码后性能测试

状况 打开webbench测试,200客户端,60秒。并发只有265page/min。 [root@li1205-86 ~]# webbench -c 500 -t 60 http://swoole-opencart.shyclouds.com/ Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://swoole-opencart.shyclouds.com/ 500 clients, running 60 sec. Speed=265 pages/min, 82524 bytes/sec. Requests: 265 susceed, 0 failed. 整体CPU利用率只有10%-15%。 解决 代码问题 开了8个进程,也启动了8个进程,但实际只有1个进程在干活。 一通google发现Swoole\Http\Server启动参数设置不对. $http = new Server("127.0.0.1", 9000, SWOOLE_PROCESS, SWOOLE_SOCK_TCP); $http->set(array( 'task_worker_num' =>...

OpenCart 3.0基准测试

本片旨在测试当前环境下,opencart的benchmark。以方便对比后续常驻内存swoole版本的性能,得出优化成果。 环境 web server,单台1核2g内存VPS 数据库MySQL 5.6,单独一台2核4g内存vps 在database上发起webbench测试 测试准备 关闭opencart模板编译,关闭sccs编译 SET SQL_SAFE_UPDATES = 0; UPDATE oc_setting SET value=1 WHERE `key` = "developer_theme"; UPDATE oc_setting SET value=1 WHERE `key` = "developer_sass"; SET SQL_SAFE_UPDATES = 1; databse server上安装webbench。安装方法参照上一篇文章 开始测试 测试100 clients,60 seconds webbench -c 100 -t 60 http://swoole-opencart.shyclouds.com/ 开着top看了下webserver的反应,nginx占37%cpu,php-fpm八进程平均1%cpu。我这是在给nginx做压测。。。 重新运行测试,试图打开网站,然而网站此时已经nginx 502错误了。 解决办法 调大ngin...