显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

编程浪子的梦博客

博客地址:www.54php.cn

 
 
 
 
 
 

湖北省 襄樊市 双鱼座

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
 

分析占用了大量 CPU 处理时间的是Java 进程中哪个线程

2018-3-23 12:00:12 阅读4 评论0 232018/03 Mar23

下面是详细步骤:

1. 首先确定进程的 ID ,可以使用 jps -v 或者 top 命令直接查看

2. 查看该进程中哪个线程占用大量 CPU,执行 top -H -p [PID] 结果如下:

可以发现编号为 350xx 的共有 9 个线程占用了 100% 的 CPU,好,接下来咱们随便取一个线程 ID ,假设我们想看编号为 35053 这个线程。

首先将 35053 转成 16 进制是 88ED (可以用开源中国在线工具转换)

3. 接下来我们将进程中的所有线程输出到一个文件中,执行:jstack [PID] > jstack.txt

4. 在进程中查找对应的线程 ID,执行:cat jstack.txt | grep -i 88ED

结果是:

"HTTP Request From : /xxxx/blog/323432(120.27.143.239)" #266 daemon prio=5 os_prio=0 tid=0x00007fcda4146800 nid=0x88e runnable [0x00007fcd54178000]

由此可以看出在请求 /xxxx/blog/323432 链接的时候,服务器的处理线程占用了 100% 的 CPU。

原文地址:分析占用了大量 CPU 处理时间的是Java 进程中哪个线程

作者  | 2018-3-23 12:00:12 | 阅读(4) |评论(0) | 阅读全文>>

【心灵鸡汤】为什么我会去云平台讲课

2017-7-23 22:20:36 阅读16 评论0 232017/07 July23

最近应该说比较忙,今天休息了一天,算是对自己身体健康的一个缓冲。

今天抽出一小会时间 说说 为什么我会去云平台录制课程

始于想挣点外快

哎呀,咋和我们梦想中的高大上的话术有点不一样。是不是觉得我应该说点比较激励的鸡汤哇。哈哈

当时云平台的人找到我,让我录制课程,我是思考过要不要去作为讲师的。当时由于在创业过程中,出现了一些问题,比较清闲。然后基于自己对自己能力的风骚自信,我就给自己了一次尝试的机会。

通过把自己会的东西以视频的方式分享出来而赚取一部分费用,我觉得没有什么不好意思说的。

所以基于自己对自己的风骚自信 和 赚点外快的想法,我踏入了网络讲师这个行业

源于责任

以前我上大学那会,觉得老师好像挺辛苦的,一个课程要重复反复讲N次。直到我自己做一个无证的网络讲师,我发现老师的真的不容易。

给大家我说说我在录制课程中的体会,我目录已经录制了3个课程(RBAC打造通用web管理权限,Vagrant打造跨平台可移动的开发环境,Yii 2.0 微信服务号开发带后台的图书商城)。在这三个课程过程中,给大家呈现的2个小时的视频,其实往往我可能我要准备10个小时,像实战课20个小时,大家可以想想讲师要准备多久。

其实从课程的额外课时费这块来讲,个人投入的时间 和 金钱的收入是完全不值得,但是为什么要坚持做这个网络讲师:源于责任,一份同学渴望知识,一份讲师传道的责任

在同学观看课程过程中,我看到了很多学习对知识的渴望,对能力提高的迷茫。让我

作者  | 2017-7-23 22:20:36 | 阅读(16) |评论(0) | 阅读全文>>

【心灵鸡汤】浪子助你提高解决问题能力

2017-6-16 23:00:27 阅读14 评论0 162017/06 June16

今天我们聊聊开心的话题 :)

我们都知道无论在什么行业,学习能力才是发展的最重要的,用潜力来说也可以。

但是学习能力是什么,其实很虚,企业如何为你的学习能力买单发工资。我觉得可以用解决问题的能力来衡量

我们从几张截图开始我们的话题

截图一:

截图二:

截图三:

善用互联网的搜索工具

作为新手难免是遇到问题就到各个技术群里去询问,这个很正常,我也是这么经历过来的。但是一般都有工作,谁又能及时给予帮助,基本不可能了。所以还要要靠自己,我们就那第一张截图来说,根据提示:no input file specified。我们以这几个字作为关键字,作为搜索条件。来看看几个搜索引擎的截图

通过上面几张截图,大家应该可以看到结果了吧,其实我们遇到的95%的问题,60亿人中肯定有人遇到过了。

通过搜索引擎找答案,主要是找 关键词,一般错误提示都是关键词,直接把错误往 搜索框提尔基本就会出来不少答案。例如截图三的关键字应该是 vagrant  vm boot_timeout

这个习惯一定要养成,因为别人告诉你的答案,很难是你的答案的,只有自己经过时间成本找到的才会学会珍惜。当然如果真真经过查找了没找到再去问,这样成长也是有的。总之尽量先自己搜索在问别人。

正确理解应用程序的错误提示

由于当我们体会到搜索的好处之后,你可能撒都不看直接复制放 搜索框里面去搜索,往往忽略了应用程序本身的提示错误提醒。例如第二个截图

作者  | 2017-6-16 23:00:27 | 阅读(14) |评论(0) | 阅读全文>>

【心灵鸡汤】大神,我有个问题,帮我看看

2017-6-9 22:20:17 阅读19 评论0 92017/06 June9

提前先申明今天的话题不是为了责备或者责怪,如果你非要这么理解我也没有办法

今天的话题就由下面这张图引出来,以下是一个找人帮忙解决问题的描述

最近这段时间经常遇到类似这样的寻求帮助的。

我说一下我看到这样的寻求帮助的对话之后内心的变化过程

认真读每一句话

从描述找遇到的问题

内心狂躁

心中一万个草泥马在奔腾

一般任何人只要找我问问题,我都会尽量尽我所能去解决,如果真真解决不了,当然也只能抱歉,因为我个人能力不够,仍然需要学习

那么为什么我内心会狂躁

因为我看了半天没读懂你到底要问什么,你的困难在哪里,请问我如何帮你解决?并且我 个人工作时间也是非常忙的(分分钟也是5毛钱上下咧),能让我内心不狂躁嘛,

我不回答你嘛,我怕你说我什么玩意不给我解决问题,我回答你嘛,接下来将是无休止的一问一答。

我当然可以理解你的确是出问题,不然你也会闲着蛋疼没事跑到问问题,还顶着随时被我这样脾气差的人骂的风险

为什么内心在奔腾

其实这个问题跟我半毛钱都没做关系,我是为你的描述能力着急,我也是从零开始的,一步一步一个脚印学习编程的,我也遇到了很多问题。

我也和大家以前以前也问问题,但是最起码我知道要如何表达清楚,不然对方听不懂,你还着急,因为你内心认为你表达的已经很清楚了,为什么你还不明白了,你咋这么笨咧

我要说的是没有人是你肚子里的蛔虫,鬼知道你在想什么了,因为你遇到的每一个问题都会有一个具体的场景,别人没有经历过你的场景 无法想象你的问题的

作者  | 2017-6-9 22:20:17 | 阅读(19) |评论(0) | 阅读全文>>

【心灵鸡汤】为撒要爱惜自己的羽毛

2017-5-28 1:20:16 阅读19 评论0 282017/05 May28

预祝大家端午节安康~~

今天想和大家聊聊的心灵鸡汤主题是:为撒要爱惜自己的羽毛。

羽毛是什么?

其实在2年前,我也不理解羽毛是什么。只是我的老大们经常在说。这里的羽毛是自己的名声。例如你在公司就是 公司同事对你的评价和认可度。在朋友圈就是朋友对你的亲密和信任度。在某个具体行业 就是 你在业界的知名度。

总结就是:认可度、信任度、知名度

如何建立?

想要建立认可度、信任度、知名度 绝非一蹴而就的,需要时间积累。我个人有感是通过三年积累起来的。

而在这三年里,我是通过了无数件事情和努力,让他们觉得我是靠谱的、交给我的事情不用担心。其实这也是个人成长的阶段,只有当你的思维真密度 和 老大们的意识在慢慢靠近的时候,说明你快要被认可了。

如何做到?

多做事,少废话。我记得我当时做了好多系统,例如ipublish发布系统、Job管理平台、CMDB运维系统、Ansible打造业务标准机、数据库性能分析系统等等。别人认识你都是通过具体的事情和你接触,然后慢慢对你有了理性的打分

要走出去,要有分享精神。你懂得东西再多,如果你不分享出来,很难有人知道,同时要让别人知道你是对技术有追求的人。例如我在公司分享过自己写的WebServer、如何用控制家里的电器、如何打造自己高逼格图书馆

机会是别人给的,也是自己争取的。只有让别人看到你有能力承担这个事情,别人才能把机会给你,因为别人也不会砸自己的名声

要敢于承担责任,错了就是错了,要提前自主承认积极挽救并承担责任

作者  | 2017-5-28 1:20:16 | 阅读(19) |评论(0) | 阅读全文>>

【心灵鸡汤】谁的青春不迷茫

2017-5-27 22:40:24 阅读29 评论0 272017/05 May27

技术界没有银弹,只有你自己不断的提高自己,练好内功,方能在未来指点江山

对技术要有追求,要学会偷懒,经常完善自己的编程思想

迷惑一

最近有好几个人问我,说:工作已经1年左右,每天都在忙,感觉技能方面没有什么提升,感觉到对技术方向的迷茫。

迷惑二

有很多人本身有点眼高手低,只要一听到干货就打了鸡血,干什么都要看看是不是干货

迷惑三

我只想写个能运行的代码就行了,请不要和我讲那么多编程思想的问题

迷惑四

普通工程师和高级工程师的差别在哪里?

我以我这几年的工作经历和大家来唠唠这迷惑之一二三四说

首先这两个阶段我都经历过,我刚开始来到上海这个陌生的大城市当年的确就是凭着一股不服输勇气支撑着我(Too Young Too Simple)。今天当然也感谢当年那次的决定,不然也不会有今天的我

第一份工作是为一个公司(BAT之一)做外包项目,当时真的蛮辛苦的,经常半夜还在加班,由于是第一份工作当然非常开心并且干劲十足。

那时候我记得我只用了三个月就已经熟悉了公司的框架以及外包公司框架。那时只要有时间(经常三更半夜)就debug MVC框架怎么运行的,并且在心中给自己定下了一个目标一定要自己实现一个MVC框架

我很高兴我实现了,项目地址:https://github.com/apanly/phpframe-simple ,虽然现在看起来实现很乱,但是这个东西为了打下了非常深厚的MVC基础。

作者  | 2017-5-27 22:40:24 | 阅读(29) |评论(0) | 阅读全文>>

图解说说 正向代理、反向代理、透明代理

2017-1-7 22:40:13 阅读29 评论0 72017/01 Jan7

代理是互联网发展初期就有的一项技术,主要是通过在服务器上安装代理软件提供代理功能的。常见的代理主要有三类

正向代理

反向代理

透明代理

有点迷糊吧,什么正向、反向了。其实我刚开始听到这个概率也是挺迷糊的,下面我们一起来详细了解下

正向代理

在没有特别说明的情况下,代理说的就是正向代理。

定义

正向代理(forward proxy)是位于客户端【用户A】和原生服务器【服务器B】之间的代理服务器C

图解

从上图我们可以看出,所谓的正向代理 就是 代理服务器C 代替 用户A 访问 服务器B 。这就是正向代理存在的意义,那我为什么要代替 访问这种需求?

作用

用户A 本身 无法访问 服务器B:所谓的FQ(不敢写了,上次写了被**部分封站并警告了)

Cache作用:Cache(缓存)技术和代理技术是密不可分(剧透下,反向代理也有缓存的作用),如果用户A 访问 服务器B 资源D之前,已经有用户通过代理服务器C访问了,那么代理服务器C可以将 资源D 保存一段时间。之后在保存有效期内 有人在访问 资源D ,代理服务器C 不在访问 服务器B,直接将保存的 资源 返回给 用户

隐藏访问着的行踪:服务器B 不知道 真真想访问 它的是 用户A ,认为是代理服务器B访问了

代表软件

Nginx

Squid

反向代理

反向代理(reverse

作者  | 2017-1-7 22:40:13 | 阅读(29) |评论(0) | 阅读全文>>

【php】命名空间 和 自动加载的关系

2016-11-25 17:00:31 阅读23 评论0 252016/11 Nov25

目的

本文的目的主要是说明 命名空间的 use 关键词 和 new ClassName 这两个步骤,哪个步骤才会执行自动加载,这是逻辑有点混乱的表现,这种想法也是很正常的,让我们来解密吧

命名空间(namespace)

php从5.3加入了命名空间,我略懂一些java,所以命名空间还是比较好理解的,为什么需要命名空间啦?主要解决自己写的内部类/函数/常量  和 第三方的类/函数/常量冲突

。引用命名空间下资源都要 使用关键字 use 标明 例如

require_once("apanly/BrowserDetector/Browser.php"); use apanly\BrowserDetector\Browser; new Browser();自动加载

php可以自定义自动加载函数,主要减少include 和 require 的使用。例如

function myLoader($classname){    $class_file = $classname . '.php';    if ( file_exists($class_file) ){       require_once($class_file);  

作者  | 2016-11-25 17:00:31 | 阅读(23) |评论(0) | 阅读全文>>

【运维工具】Git代码发布系统

2016-11-21 23:00:38 阅读27 评论0 212016/11 Nov21

引言

代码发布系统是互联网公司必备的运维系统,作用主要用户发布业务代码 到 业务服务器

为什么需要代码发布系统

有的同学可能说,我们公司服务器就那么一台,做个发布系统太麻烦了? 不认同这说法

发布系统有如下好处

流程管理,加上权限管理,可以在系统记录 谁 做了 什么 操作

减少人工误操作影响,登录服务器本身操作就是有误操作的可能的

运维自动化  为运维工作减负

加快发布速度  不用人工登录N台服务器发布

方便快速回滚版本

技术选型

git:代码管理工具  git使用笔记

rsync:同步代码到指定服务器

Yii2:php mvc 框架

Bootstrap3:前端框架

jquery:js库

代码发布系统流程框架图

Web界面化操作,流程化管理 ,提交发布任务

定时脚本 获取发布任务

制定同步策略 发布代码

界面化操作,流程化管理

流程化管理在人员比较多的时候优势特别明显,人多手杂很容易出问题。所以在代码发布系统中加入流程化管理也是与时俱进

作者  | 2016-11-21 23:00:38 | 阅读(27) |评论(0) | 阅读全文>>

【个人重点】开发中应该重视的几点

2016-11-1 19:00:23 阅读10 评论0 12016/11 Nov1

个人总结

URL统一管理,调用统一方法,并且URL必须返回全路径,可以封装成service,并且url是全路径(包含域名),以后更改都非常方便了

静态资源加版本好,调用统一方法

用户密码必须加salt,最好记录在数据库中,每个用户都有不同的salt

静态资源版本号,每次上线需要版本号不一样了

对于数据量很大的查询,时刻记得要释放内存 详见phpexcel 内存溢出 优化

手机API必须指定版本号,例如 /v1/user/info  ,/v2/user/info

后端应用应该记录所有的GET,POST请求,以及GET,POST请求参数(商业产品非常重要)

全站HTTPS或者CSP 防止运营商内容劫持

原文地址:【个人重点】开发中应该重视的几点

标签:url   框架   cdn   api   重视

智能推荐

作者  | 2016-11-1 19:00:23 | 阅读(10) |评论(0) | 阅读全文>>

混合App 框架选型

2016-10-8 0:00:14 阅读10 评论0 82016/10 Oct8

个人一直想做个App,但是学习 IOS 的过程发现 原生的做界面还是听麻烦的就放弃了。后来就转到混合式App阵营了

混合式App 定义

Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”

平台框架选择

APICloud

Dcloud

Ionic

平台对比Dcloud 平台

大量使用H5接口

提供一些原生Api(官方号称40万Api),例如 webview,actionsheet

Mui提供界面框架

论坛 和 文档 还算可以,入手快

hbuilder开发工具不错(应该这个编辑器最出名了)

APICloud 平台

官方提供原生模块

文档不好入手,新手入手有点高

Ionic 平台

官网只提供 UI框架 和 JS 组件

文档比较完善

有大量的插件,借助于 cordova/phonegap 平台

遇到的问题 都可以 google 解决

开发工具 部署都非常方便

个人选择平台

个人选择了ionic,因为dcloud我用过,感觉我需要的有些功能完成不了,并且我发现写的代码冗余太多了,我来说说 ionic 的优势

ionic优势

作者  | 2016-10-8 0:00:14 | 阅读(10) |评论(0) | 阅读全文>>

【Demo】HTML5 拍照上传

2016-8-2 23:00:55 阅读27 评论0 22016/08 Aug2

本文主要讲解 手机浏览器 如何拍照

为什么会有这个需求

最近做一个项目要用到拍照然后上传照片,但是网页拍照一般都是用Flash做的,而我们主要是H5页面,如果在微信里面有权限就可以通过JSSDK调起摄像头拍照的。这里我们主要说下手机端浏览器如何调起摄像头

H5如何打开摄像头

不需要特别的支持,只需要一行代码就可以了

<input id="upload" type="file" accept="image/*;" capture="camera" > 如何预览图

原理是用js获取input file的图像流,然后赋给img标签的src属性,然后再设置这个img的css,就能得到你要的效果了,代码如下

; var demo_h5_upload_ops = { init:function(){ this.eventBind(); }, eventBind:function(){ var that = this; $("#upload").change(function(){ var reader = new FileReader(); reader.onload = function (e)

作者  | 2016-8-2 23:00:55 | 阅读(27) |评论(0) | 阅读全文>>

【运维工具】logrotate 日志管理神器

2016-7-26 14:40:52 阅读6 评论0 262016/07 July26

服务器经常会产生各种各样的日志文件,我们需要定期清理

日志的分类

系统日志

应用日志

系统日志

例如系统的history 历史信息   crontab的运行日志  一般系统日志系统都帮我们运维好了,不需要额外配置

应用日志

例如nginx  的access 和 error 日志 ,php框架的运行日志,这些日志是我们排查问题的有力证据

工具logrotatelogrotate是什么

logrotate是大多数linux系统自带的日志切割工具

logrotate的适用场景

logrotate常用来切割仍在被写的“动态”文件,它支持 按时间间隔或文件大小 来触发文件的自动切分(automatic rotation)

实战

按天保存一周的Nginx日志压缩文件,保留30天,配置文件为「/etc/logrotate.d/nginx」

最后代码如下(本人ubuntu系统)

/data/logs/nginx/*.log {         daily dateext         missingok dateformat %Y%m%d   

作者  | 2016-7-26 14:40:52 | 阅读(6) |评论(0) | 阅读全文>>

如何查看google chrome 插件源码

2016-7-26 14:00:54 阅读10 评论0 262016/07 July26

常用浏览器google chrome 有很多优秀的插件,寂寞的时候想看看人家是怎么实现的,说是快那就动手吧

插件代码位置

本人mac笔记本,chrome 插件位置如下

$ cd  /Users/vincent/Library/Application\ Support/Google/Chrome/Default/Extensions $ ls -al drwxrwxr-x   3 vincent  staff   102 Jun 24 13:33 bnoamnljhdaigfhafpomkflkebegjfci drwx------   3 vincent  staff   102 Jul 25 08:59 fdmmgilgnpjigdojojpjoooidkmcomcm drwx------   3 vincent  staff   102 Jul 25 08:59 fhbjgbiflinjbdggehcddcbncdddomop drwx------   3

作者  | 2016-7-26 14:00:54 | 阅读(10) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

注册 登录  
 加关注