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

编程浪子的梦博客

博客地址:www.54php.cn

 
 
 
 
 
 

湖北省 襄樊市 双鱼座

 发消息  写留言

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

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

2018-3-23 12:00:12 阅读2 评论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 | 阅读(2) |评论(0) | 阅读全文>>

【重要】ASCII码表

2017-10-12 18:00:10 阅读8 评论0 122017/10 Oct12

我们在做业务项目,客户端的输入总是无法控制,有各种各样的特殊字符,这些特殊字符就要借助ASCII码表才能判断,所以我做了一张图,方便查看

为什么要搞个表出来,下面的字符串中,你看看你能否看的出来是什么特殊字符嘛(中间空白地方)

20160807  1

看不出来吧,让我们看看16进制是什么

$ hexdump -C tmp.md 0000000 32 30 31 36 30 38 30 37 20 c2 a0 31 000000c

三个特殊字符是 20,c2,a0 这只能对应ascii码表找了

原文地址:【重要】ASCII码表

标签:ascii   特殊字符

智能推荐【git】删除某个文件的所有历史记录,批量删除远程分支【运维工具】logrotate 日志管理神器

作者  | 2017-10-12 18:00:10 | 阅读(8) |评论(0) | 阅读全文>>

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

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

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

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

始于想挣点外快

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

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

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

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

源于责任

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

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

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

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

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

【Mysql数据库访问利器】phpMyadmin

2017-7-16 18:20:09 阅读17 评论0 162017/07 July16

缘由

我们程序员难免要和数据库打交道,经过这几年的锻炼,感觉手写SQL语句已经忘记的差不错了,促使我一定要这篇文章的原因是,有一次晚上我更新某个系统的数据库的表(由于目前公司比较严格,数据库都只能通过命令行访问,无法通过GUI工具操作),然后由于where 条件写错了,然后数据更新错了不少。痛定思痛:用好的工具来避免这种情况,那就是phpMyadmin

phpMyadmin

phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性

没错解释我是找 某搜索引擎的。 其实我给大家简单解释下:phpMyadmin 使用用php写的,可以通过Web界面访问Mysql数据库的,为我们研发操作数据库提供的不少方便的

下载

去官网地址 https://www.phpmyadmin.net/

作者  | 2017-7-16 18:20:09 | 阅读(17) |评论(0) | 阅读全文>>

tp5, laravel, yii2我该选择哪个

2017-7-2 1:20:34 阅读10 评论0 22017/07 July2

为什么写这篇文章

我个人有一个技术群,里面学什么框架的都有,经常会有人问 某某功能 在 哪个框架怎么实现,用什么框架实现更好,说道这里我大家讲一个同类型问题的笑话

某女:你能让这个论坛的人都吵起来,我今晚就跟你走。

某软件工程师:PHP是最好的语言!

某论坛就真的炸锅了,各种吵架../..

某女:服了你了,我们走吧,你想干啥都行。

某软件工程师:今天不行,我一定要说服他们,PHP必须是最好的语言

大家注意重点哦(可能有同学会说 活该单身狗 哈哈),这边文章的标题 就和这个语言争论是一样

没有最好,只有更适合

和语言之争一样,框架一样没有那个最好这种说法,只有更适合。这里的更适合我要给大家解释下。

更适合是 你非常了解一个框架 ,一定要注意不是因为你使用过 就一定更适合,因为只有你认证了解过 在出现极端问题才知道怎么解决

更适合是 你当前技术栈选择,例如公司大部分人都会Yii2 框架,你说我们选择个tp5,你这不是折腾人嘛,多人的智慧还是可取的

更适合是 相对而言 文档比较丰富,不然新人学习成本很高的

其实真有最好 也是不好的,百花齐放百家争鸣 这样才能促进一个东西的进步,如果整个互联网PHP的框架 都是鸟哥的yaf,那就一家独大,框架就很难发展啦

不要局限自己,要抱着开放的心态

我所了解的一些同学,当自己熟悉某个框架之后 就觉得其他的框架都是浮云,这就有点画地为牢 把自己圈起来了,不愿意接受新的知识了。

作者  | 2017-7-2 1:20:34 | 阅读(10) |评论(0) | 阅读全文>>

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

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

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

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

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

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

截图一:

截图二:

截图三:

善用互联网的搜索工具

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

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

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

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

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

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

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

【实战】Docker 入门实战一:安装Dockeer

2017-6-11 3:40:31 阅读17 评论0 112017/06 June11

Docker是什么

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低

从这个解释我们不知道大家有没有想到一个优点类似的东西,没错就是 Vagrant :  vagrant打造跨平台可移动的开发环境    ,那么这两个东西有什么区别咧?

Docker 与 Vagrant的区别

从字面意思上来讲,这两个东西都可以实现虚拟化。Vagrant 是基于Virtualbox等虚拟机软件的实现的(Vagrant 本身并不提供虚拟技术,只是调用Virtualbox等提供的接口,进行虚拟机的管理),而Docker是基于LXC轻量级容器虚拟技术。一般我们用Vagrant来部署开发环境,Docker一般是部署生产环境,当然docker也可以部署开发环境了。但是Vagrant 部署生产环境就不行了,因为Docker比较轻量级,Vagrant就有点重

Docker的应用场景

Web 应用的自动化打包和发布。

自动化测试和持续集成、发布。

作者  | 2017-6-11 3:40:31 | 阅读(17) |评论(0) | 阅读全文>>

【重要】号外啦,演示系统发布啦

2017-6-11 2:00:12 阅读25 评论0 112017/06 June11

最近一直比较忙,很多东西都咩有认证整理,今晚将所有项目整理了做了一个演示系统,可以方便自己找也方便大家查看

整体布局如下图:

演示系统的地址:http://www.54php.cn/demo

下面是我目前认证的服务号二维码。会不定期发一些心灵鸡汤哦

原文地址:【重要】号外啦,演示系统发布啦

标签:演示系统

智能推荐进程与线程的一个简单解释【年度】太俗也只能说谢谢【年度】2015迷茫之心【运维工具】Git代码发布系统crontab执行时间和系统时间不一致

作者  | 2017-6-11 2:00:12 | 阅读(25) |评论(0) | 阅读全文>>

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

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

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

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

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

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

认真读每一句话

从描述找遇到的问题

内心狂躁

心中一万个草泥马在奔腾

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

那么为什么我内心会狂躁

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

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

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

为什么内心在奔腾

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

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

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

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

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

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

预祝大家端午节安康~~

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

羽毛是什么?

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

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

如何建立?

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

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

如何做到?

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

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

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

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

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

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

2017-5-27 22:40:24 阅读26 评论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 | 阅读(26) |评论(0) | 阅读全文>>

当使用php5自带的file_get_contents方法来获取远程文件的时候,有时候会出现file_get_contents(): failed to open stream: HTTP request failed!这个警告信息。

google或者baidu一下,好多这样的问题,解决的方法都是修改PHP.ini,把allow_url_fopen给启用,改成 allow_url_fopen = On

这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)重启服务器。

但是有些还是会有这个警告信息,想用完美的解决还差一步,还得设置php.ini里面的user_agent,php默认的user_agent是PHP,我们把它改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器就可以了

user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

在工作中遇到这个问题,后完美解决,故分享给大家。

<?php ini_set("user_agent","Mozilla/4.0 (comp

作者  | 2017-5-17 14:00:11 | 阅读(20) |评论(0) | 阅读全文>>

【nginx,apache】thinkphp ,laravel,yii2开发运行环境搭建

2017-2-19 21:40:26 阅读28 评论0 192017/02 Feb19

缘由

经常会有人问xx框架怎么配置运行环境,这里我就给贴出吉祥三宝(Yii2,Laravel5,Thinkphp5 )的Nginx和Apache的配置,供大家参考

NginxYii2

server {         charset utf-8;         client_max_body_size 128M;         listen 80;         server_name yii.local.test;         root  /home/www/yii2/web;         index  index.php;              location ~* \.(eot|otf|ttf|woff)$ {             add_header Access-Control-Allow-Origin *;         }              location / {             try_

作者  | 2017-2-19 21:40:26 | 阅读(28) |评论(0) | 阅读全文>>

问题

最近遇到一个这样的问题,新建数据库表的时候 提示 错误如下

Invalid default value for 'created_time' timestamp field

语句如下

`created_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '插入时间'

错误大致的意思 就是不能为 timestamp字段设置指定的默认值,也就是语句中的 0000-00-00 00:00:00,但是很奇怪在本地就可以,为什么线上服务器就不行了?

本地数据库版本:5.5.46 上线数据库版本:5.7.17

后来经过查询文档(文档地址)发现,其实从5.6.17这个版本就默认设置了不允许插入 0 日期了,术语是 NO_ZERO_IN_DATE  NO_ZERO_DATE

解决方案

如果一定要设置为 0 日期的话,也是可以的,找到mysql的配置文件,在修改sql-mode,然后重启数据库服务

[mysqld] #set

作者  | 2017-2-5 20:00:08 | 阅读(31) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

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

注册 登录  
 加关注