- 博客(72)
- 资源 (38)
- 收藏
- 关注
转载 文件传输零拷贝的Java实现
零拷贝的概念介绍“Zero-copy” describes computer operations in which the CPU does not perform the task of copying data from one memory area to another.零拷贝表示:在计算机操作的过程中,CPU不需要为数据在内存之间的拷贝消耗资源。而它通常是指计算机在网络上发送文件时,不需要将文件内容拷贝到用户空间(User Space)而直接在内核空间(Kernel Space)中传输到网
2020-09-09 15:18:21 1004
转载 JAVA的线程状态
作者:大闲人柴毛毛链接:https://www.zhihu.com/question/27654579/answer/252912242来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。在Java中线程的状态一共被分成6种:初始态:NEW创建一个Thread对象,但还未调用start()启动线程时,线程处于初始态。运行态:RUNNABLE在Java中,运行态包括就绪态 和 运行态。就绪态 该状态下的线程已经获得执行所需的所有资源,只要CPU...
2020-09-09 15:11:38 178
转载 设置git多账号
一直以来git都是自己业余玩玩,虽然也在github上有个账户,也只是小打小闹,弄了若干个测试仓库。最近公司要从TFS迁移到Gerrit,也算是正式用git了。不过遇到的一个问题就是账户问题,一个个人账户,一个公司账户,个人账户是到github仓库的,公司账户是到公司自己搭建的仓库的。所就配置一下了。当然首先就是生成SSH Key了,cd到.ssh目录下(该目录一般在当前用户的文件夹下[1],如果没有可以自己新建一个)。$ cd .ssh$ ssh-keygen -t rsa -C "youre
2020-09-09 14:38:08 2155
转载 深入理解JWT的使用场景和优劣
前言前面简单介绍了JWT的基础,但是对于JWT的应用场景和优缺点掌握的还够,这些东西只有自己实践过才能搞清楚其中的细节。在网上看到一个大佬对这块讲的比较好,就转载过来一起学习下。编码,签名,加密这些基础知识简单地介绍下,千万别搞混了三个概念。在 jwt 中恰好同时涉及了这三个概念,这里用大白话来做下通俗的讲解。编码(encode)和解码(decode)一般编码解码是为了方便以字节的方式表示数据,便于存储和网络传输。整个 jwt 串会被置于 http 的 Header 或者 url 中,为
2020-09-08 21:34:35 496
转载 还分不清 Cookie、Session、Token、JWT?
什么是认证(Authentication)通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功) 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人 什么是授权(Authorization)用户授予第三方应用访问该用户某些资源的权限 你在安装手机应用的时候,APP 会询问是否允许授予权限(访问相册、地理位置等权限) 你
2020-09-08 21:28:36 258
原创 JVM Promotion Fail FGC问题解决
一、现象某系统每台机器每天都会出现一次fgc时间过长的告警。二、分析1.查看监控,发现每天无规律的会发生达到5-7秒的fgc。注:该监控上的fullgc监控采用的是jmx的统计方式,所以其实是对oldgc的监控,因为除了CMS和G1以外的垃圾回收器的old gc只能由fullgc触发,所以大部分情况下oldgc次数就是fullgc次数,oldgc时间接近于fu...
2019-07-13 16:59:15 2029
原创 JVM垃圾回收和调优实践
JVM垃圾回收YGC、OldGC、FullGC区别和联系区别YGC ->Minor GG:发生在年轻代的GCOldGC -> Major GC:发生在老年代的GCFullGC -> Full GC:发生在年轻代、老年代、方法区的GC(方法区VS持久代:方法区是JVM规范,持久代是方法区的实现,jdk8后方法区由本地内存实现) ...
2019-07-13 16:59:00 910
原创 Mysql索引为什么要使用B+树
首先,明确一下索引的目的,是为了加快查找。那么,我们从可以提高查找速率的几种数据结构来分析,为啥Mysql要使用B+树:1、数组数组的特征是连续的内存块,利用磁盘的预读特性,遍历查询较快,如果数组本身有序,利用二分查找则查找更快。但是插入/删除需要调整位置,特别是如果插入的位置是在前面,则几乎整个数组的元素都需要调整。所以,数组劣势在写入。2、二叉排序树二叉排序树极端情况下会退化成...
2019-07-07 23:58:24 237
原创 mysql千万级数据表优化
首先,提个问题:是否千万级的表就一定得优化?答案是:否!大表的性能差,是因为大小超过配置的Innodb buffer size从而产生了磁盘IO。如果一个大表行数过千万,但是大小并不超过Innodb buffer size,那么表的性能不见得就很差。所以,这里说的"千万级数据表",指的是大小超过Innodb buffer size的表。优化思路:1、索引优化2、针对读多写少...
2019-06-24 09:30:50 259
原创 strace 定位性能问题
一.定位CPU使用率过高问题1.首先通过top命令查看CPU情况 按照CPU使用率排序有两种方式:a)top -Hb) top后按[1],显示每个cpux的使用情况,然后按shirt+p排序2.查找出cpu使用率最高的pid,用strace -p pid查看系统调用情况,用strace -cp pid查看系统调用的耗时情况,用strace -cp -e trace=net
2015-12-03 20:52:48 907
原创 Http缓存
缓存,在高性能系统中尤为重要,一般的缓存可以分为浏览器缓存和服务器缓存,服务器缓存又可以分为分布式缓存和本地缓存,分布式缓存一般使用memcached或redis等性能良好的中间服务,本地服务像java可以使用encache或者各种数据结构.这里我们不深究服务器缓存,而是要讲讲WEB开发中常用的浏览器缓存. 由于浏览器使用的时http,所以浏览器缓存也可以叫是http缓存.首先来看看一
2015-11-29 21:00:45 432
转载 Linux 安装Navicat
今天发现Navicat for MySQL有LINUX版本了哈, 开心的说,首先上官网上下载LINUX版本: http://www.navicat.com/download1. 下载 navicat110_mysql_en.tar.gz 文件2. 下载后解压tar文件tar -zxvf /home/rain/download/navicat8_mysql_en.
2015-09-26 19:23:45 645
转载 java.lang.NoClassDefFoundError: Lorg/sonatype/aether/RepositorySystem
[INFO] --- copy-maven-plugin:0.2.5:copy [WARNING] Error injecting: com.github.goldin.plugins.copy.CopyMojo java.lang.NoClassDefFoundError: Lorg/sonatype/aether/RepositorySystem; [ERROR] Failed
2015-08-04 00:10:32 1531
原创 maven部署web项目到远程tomcat6
1、远程tomcat配置:Tomcat conf 下的tomcat-users.xml 增加 启动tomcat7,然后访问 http://localhost:8080/manager/html,输入admin/password,如果出现以下界面,表示tomcat一切OK如果是To
2015-06-24 19:38:18 741
原创 maven小结
1、下载依赖源码使maven2在下载依赖包的同时下载其源代码包的方法:1. 使用maven命令:mvn dependency:sources 下载依赖包的源代码。2. 使用参数: -DdownloadSources=true 下载源代码jar。 -DdownloadJavadocs=true 下载javadoc包。
2014-11-12 14:30:26 376
原创 python 小结
#获取当前时间import timedef getCurrentTime(): nowTime = time.localtime() year = str(nowTime.tm_year) month = str(nowTime.tm_mon) day = str(nowTime.tm_mday) hour = str(nowTime
2014-10-28 23:02:17 333
转载 JVM 内存调优小结
先转载yJVM参数调优是一个很头痛的问题,可能和应用有关系,下面是本人一些调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,dell2950服务器,网站是shedewang.com,新手可能觉得这文章没有用。 一:串行垃圾回收,也就是默认配置,完成10万request用时153秒,JVM参数配置如下 $JAVA_AR
2014-09-21 23:22:18 598
原创 windows下安装pyrhon fabric
http://www.voidspace.org.uk/python/modules.shtml#pycrypto
2014-08-12 21:03:26 1271
原创 sqlite3、mongodb、mysql数据库的常用命令
salite3——连接数据库:.open '数据库绝对路径/数据库文件名.db'列出数据库:.databases列出表: .tables查询操作跟一般sql差不多mongodb——连接数据库实例:./mongo ip:port (m
2014-08-09 15:13:57 688
原创 eclipse 一闪而过解决方案
Error occurred during initialization of VM Cound not reserve enough space for object heaptiaoxiao内存
2014-06-03 22:50:56 984
原创 Guice 三种注入方式
1、成员变量注入 @Inject Object object; 注意:通过成员变量注入的对象,在注入类得构造函数里不能引用,因为构造实例的时候,成员变量是还没有注入进去的,所以在构造函数里引用会报Null。如果需要在构造 函数里引用,应该使用构造函数注入或者setter方式注入。2、构造函数注入 @I
2014-01-04 01:40:46 1261
原创 设计模式之观察者模式、监听者模式
1、观察者模式:多个对象依赖于一个对象状态的变化,或者说,一个对象的状态变化会“通知”给多个对象,这个时候可以用到观察者模式。观察者(Observer):被“通知”的对象被观察者(Subject ):被观察的对象思想比较简单,就是观察者注册到被观察者,当某个状态改变的时候,被观察者就通知所有观察者根据依赖倒置原则,设计出得关系图:参考代码:/**
2014-01-04 00:14:58 1349
原创 获取JAVA当前进程PID的两种方法
第一种方法:使用ManagementFactory.getRuntimeMXBean,Java 虚拟机的运行时系统的管理接口RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();String name = runtime.getName(); // format: "pid@hostname"try
2013-09-26 23:06:10 2256
转载 jstatd
jstatd [options] 此命令是一个RMI Server应用程序,提供了对JVM的创建和结束监视,也为远程监视工具提供了一个可以attach的接口options -nr 当一个存在的RMI Registry没有找到时,不尝试创建一个内部的RMI Registry-p port 端口号,默认为1099-n rminame 默认为JStatRemoteHo
2013-09-18 03:06:06 637
原创 python批量删除数据库触发器
# coding=gbkimport MySQLdbimport ostry: conn=MySQLdb.connect(host='localhost',user='root',passwd='****',db='user',port=3306) #打开连接 cur=conn.cursor() # 查询birthdayinfo表下的所有触发器
2013-09-15 20:15:33 1182
转载 linux 下压缩解压命令
压缩 tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并
2013-08-10 12:09:09 470
原创 Linux下三种配置环境变量的方式
三种配置环境变量的方法 1. 修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 ·用文本编辑器打开/etc/profile ·在profile文件末尾加入: JAVA_HOME=/usr/share/jdk1.5.0_
2013-08-01 19:42:42 487
原创 mysql 检测表锁定情况
1、查看当前有没有被锁的表: show status like 'table%'; 2、查看当前被锁的表: show processlist;3、停止锁定: kill Id; (Id为show processlist 查询出来的Id)有关对表加锁的介绍:http://blog.csdn.net/sunhuaquan/arti
2013-07-13 13:35:53 813
原创 JAXB+Guice 实现配置文件读取
JAXB提供了xml与java对象相互转换的实现,可以很方便的将一个xml文件内容映射到与之相对应的对象里,也可以将一个对象解析到成xml语法。
2013-06-29 14:22:29 320
原创 mysql 查看日志
mysql 日志文件的使用 MYSQL有不同类型的日志文件(各自存储了不同类型的日志),从它们当中可以查询到MYSQL里都做了些什么,对于MYSQL的管理工作,这些日志文件是不可缺少的。1.错误日志(The error log):记录了数据库启动、运行以及停止过程中错误信息;2.ISAM操作日志(The isam log):记录了所有对ISAM表的修改,该日志仅仅用于调试ISAM模
2013-06-13 20:57:34 968
memcahed.zip
2014-10-22
btrace.jar
2013-07-13
python2.6-MySQLdb
2013-07-06
memcached 服务端以及memcached.jar
2013-03-24
inno setup安装程序制作软件
2011-11-25
exe4j生成exe
2011-10-22
RJ TextEd文字编辑工具(英文版)
2011-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人