python 内存溢出的解决方法
运行在服务器上的数据同步脚本突然出现已杀死,谁把你杀了,咋就突然被杀了??? 系统日志切换到 var/log/ 查看 messages,发现是 Out of memory: Kill process 13678 (python3) score 906 or sacrifice child 原因分析这就奇怪了,数据同步脚本每次运行完都会释放内存的,而且已经从常开的死循环改成了 BlockingScheduler 的定时任务,按理说不应该消耗大量内存。 数据同步没问题,那就只能是其他程序消耗了,想起来这里不紧运行了数据同步,还有一个 laravel 项目和一个 django 项目,laravel 为 django 提供接口,问题很有可能就出现在 django! 运行 top 查看 python 的内存消耗,然后通过 laravel 调用一下接口,发现内存确实上涨并且一直没有释放。 罪魁祸首终于找到了! 问题解决经过一番查询,django 引发内存泄漏一般有两种情况,一个是直接访问 django 的数据库接口时没有主动释放游标,另一个就是设置了 debug...
2019 年学习清单
laradock laravel 内置 vue 的用法 laravel 事件 laravel 队列 laravel 内置测试模块 laravel 广播系统 laravel 消息通知 composer 扩展包开发 php travis ci 可持续集成 swoole 深入学习 trait 的实际应用 php 代码分析工具 PHPStan 的研究与学习 laravel 最新版项目实战 deep learning 卷积网络预测股票涨跌 laravel-swoole laravel-admin
在 laradock 环境中使用 laravel-swoole 加速你的 laravel 应用
在 laradock 环境中使用 laravel-swoole 加速你的 laravel 应用。 安装laravel-swoole12composer require swooletw/laravel-swoolephp artisan vendor:publish --tag=laravel-swoole 开放 workspace 端口在 laradock/workspace/Dockerfile 最后添加一行: 1EXPOSE 1215 然后重新 build workspace 容器。 修改 nginx 配置123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657upstream swoole-http { server workspace:1215;}map $http_upgrade $connection_upgrade { default upgrade; ...
在 docker 容器中安装 zend guard
在 docker 容器中安装 zend guard。 进入容器1docker-compose exec php-fpm bash 更新环境12apt-get updateapt-get install wget -y 下载文件1wget http://downloads.zend.com/guard/7.0.0/zend-loader-php5.6-linux-x86_64_update1.tar.gz 解压1tar -xzvf zend-loader-php5.6-linux-x86_64_update1.tar.gz 查看扩展路径在 php-info 中搜索路径: 1extension_dir 移动扩展包并使之生效12cp *.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226docker-php-ext-enable ZendGuardLoader 安装成功重启环境。
在vue中使用laravel-permission的@can标签
1. 在需要权限校验的 model 中新增方法12345678910public function getAllPermissionsAttribute() { $permissions = $this->getAllPermissions(); $permission_names = []; collect($permissions)->map(function ($permission) use (&$permission_names) { $permission_names[] = $permission->name; }); return $permission_names;} 2. 在 app.blade 中存储当前用户的所有权限1234567<script> @auth window.Permissions = @json(Auth::user()->allPermissions); @else ...
docker 容器访问宿主机端口
运行在 docker 容器中的一个项目需要访问宿主机的某个端口,比如容器 A 中的项目访问宿主机 B,在 A 的项目中以下边的地址来访问即可: 1host.docker.internal 之前是可以运行的,但是今天不知道什么情况突然 500 了,重启电脑后,在容器中 ping 这个地址: 1234567PING host.docker.internal (192.168.65.2) 56(84) bytes of data.64 bytes from 192.168.65.2: icmp_seq=1 ttl=37 time=2.09 ms64 bytes from 192.168.65.2: icmp_seq=2 ttl=37 time=1.05 ms64 bytes from 192.168.65.2: icmp_seq=3 ttl=37 time=1.05 ms64 bytes from 192.168.65.2: icmp_seq=4 ttl=37 time=1.16 ms64 bytes from 192.168.65.2: icmp_seq=5 ttl=37...
哈!
很久很久以前,有只自认为自己是狼的哈士奇,叫大哈。 后来,他找到了一个让他愿意把骨头让出来的人。 祝他做一只幸福的哈士奇,每天都有骨头吃。
卷积神经网络学习
卷积神经网络,计算机视觉应用几乎都在使用的一种深度学习模型。 一般用于训练数据集较小的问题,比如图像分类。 简介卷积神经网络是一种多层神经网络,主要由输入层,卷积层,激励函数,池化层和全连接层组成,可以通过一系列方法,成功将数据量庞大的图片识别问题不断降维,最终使其能够被训练。 输入层即数据的输入。 通过传入参数 input_shape=(28, 28, 1) 来设置网络接收张量的形状。 卷积层使用卷积核来进行特征提取和特征映射。 当我们输入的图像是 28 * 28 * 1 ,定义一个 3 * 3 的卷积核来对图像进行卷积操作(可以理解为一个滑动窗口,把卷积核与对应的图像像素做乘积然后求和),得到了 3 * 3 的卷积结果。 这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。 激励层激励层主要对卷积层的输出进行一个非线性映射,因为卷积层的计算还是一种线性计算。 使用的激励函数一般是...
laravel 广播系统学习
看到广播系统,先想起了曾经虐过我的即时通讯。 虽然都是对 websocket 的应用,但是好像又有点区别,这里好好学习一下。 laravel 的广播与事件紧密相关,广播即对事件进行广播,因此在学习广播之前,要先阅读事件和监听器的相关文档。 配置老规矩,先来看配置文件 config/broadcasting.php 里边的配置选项: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960<?phpreturn [ /* |-------------------------------------------------------------------------- | Default Broadcaster |-------------------------------------------------------------------------- | |...
laravel 测试模块学习
学习下 larave 内置的测试模块。 当你想把一些东西写到 print 语句或者调试表达式中时,别这么做,将其写成一个测试来代替。 –Martin Fowler 最开始看到的关于 laravel 测试的信息是借助模型工厂来生成测试数据,今天查完资料发现,这只是测试中的一小部分。 laravel 内置了 PHPUnit 来做测试,并且已经做好了配置文件,还提供了一些便利的辅助函数,可以更直观的测试程序。 在 laravel 的项目中,包含一个 tests 目录,这个目录又有两个子目录:Feature 和 Unit 分别用来做功能测试和单元测试。 功能测试用于测试较大区块的代码,包括若干组件之间的交互,甚至一个完整的 HTTP 请求。 单元测试用于小的 、相互隔离的代码。 配置可以使用默认的配置,也可以创建一个 .env.testing 文件,在运行测试或执行带有 --env=testing 开关的 Artisan 命令时覆盖 .env 文件中的环境变量。 创建 & 运行测试运行 artisan 生成测试用例: 12345// 在...