- 博客(239)
- 资源 (20)
- 收藏
- 关注
转载 Shell date 命令详解
格式: date [选项] ... [+格式]选项说明: -d ,--date=字符串 显示指定字符串所描述的时间格式说明: 例子1:#!/bin/bash##1. 获取当前系统时间 YYYY-MM-DD HH:MM:SSv_time_eq=`date "+%F %T"`v_time=`date "+%Y-%m-%d %H:%M:%S"`...
2018-08-22 19:04:24 16398 1
转载 nginx优化之request_time 和upstream_response_time差别
笔者在根据nginx的accesslog中$request_time进行程序优化时,发现有个接口,直接返回数据,平均的$request_time也比较大。原来$request_time包含了用户数据接收时间,而真正程序的响应时间应该用$upstream_response_time。下面介绍下2者的差别:1、request_time官网描述:request processing time...
2018-08-15 17:13:38 895
转载 springboot中配置tomcat的access log
在tomcat的access中打印出请求的情况可以帮助我们分析问题,通常比较关注的有访问IP、线程号、访问url、返回状态码、访问时间、持续时间。在Spring boot中使用了内嵌的tomcat,可以通过server.tomcat.accesslog配置tomcat 的access日志,这里就以Spring boot 1.5.3为例。server.tomcat.accesslog....
2018-08-15 15:11:39 1977
原创 Java:一步步带你深入了解神秘的Java反射机制
前言在 Java中,反射机制(Reflection)非常重要,但对于很多开发者来说,这并不容易理解,甚至觉得有点神秘 今天,我将献上一份 Java反射机制的介绍 & 实战攻略,希望你们会喜欢。 目录1. 简介 定义:Java语言中 一种 动态(运行时)访问、检测 & 修改它本身的能力 作用:动态(运行时)获取类的完整结构信息 & 调用对象...
2018-07-29 19:58:24 669
转载 Java的三种代理模式
1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明...
2018-07-18 19:57:58 233
转载 Hadoop之HDFS文件读写过程
一、HDFS读过程 1.1 HDFS API 读文件 [java] view plain copyConfiguration conf = new Configuration(); FileSystem fs = FileSystem.get(conf); Path file = new Path("demo.txt"); FSDataInputStream inStream = ...
2018-03-18 21:36:04 570
转载 【机器学习笔记1】Logistic回归总结
1.引言看了Stanford的Andrew Ng老师的机器学习公开课中关于Logistic Regression的讲解,然后又看了《机器学习实战》中的LogisticRegression部分,写下此篇学习笔记总结一下。首先说一下我的感受,《机器学习实战》一书在介绍原理的同时将全部的算法用源代码实现,非常具有操作性,可以加深对算法的理解,但是美中不足的是在原理上介绍的比较粗略,很多细节没有具体介绍。...
2018-03-15 10:18:33 424
转载 伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布、连续分布(正态分布)、大数定理、中心极限定理、贝叶斯理论
机器学习中常遇到关于各种分布的问题,不过这些知识都已经忘得差不多了,就搜了点资料,详细讲解下伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布 ,用于后期回顾。 ...
2018-03-14 22:06:16 854
转载 如何理解beta分布?
相信大家学过统计学的都对 正态分布 二项分布 均匀分布 等等很熟悉了,但是却鲜少有人去介绍beta分布的。用一句话来说,beta分布可以看作一个概率的概率分布,当你不知道一个东西的具体概率是多少时,它可以给出了所有概率出现的可能性大小。举一个简单的例子,熟悉棒球运动的都知道有一个指标就是棒球击球率(batting average),就是用一个运动员击中的球数除以击球的总数,我们一般认为0.266是...
2018-03-14 14:30:46 8911 4
转载 如何建设高可用系统
面试的时候经常会问一个问题,如何建设高可用系统?大家可以一起探讨下。“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。以下是高可用系统的设计建议: 设计建议减少单点 – 去单点首先要识别整个系统所有主链路的单点,如机房(同城异地双机房),应用服务器,DNS服务器,SFTP服务器,LBS,缓存服务器,数据库,消息服务器,代...
2018-03-11 21:21:10 2034 2
转载 关于高可用系统的一些技术方案
系统设计关于高可用系统的一些技术方案高可用方法论扩展隔离解耦限流分类漏桶算法令牌桶算法滑动窗口计数法动态限流降级熔断发布相关模块级自动化测试灰度发布 回滚其他总结参考资料系统设计:关于高可用系统的一些技术方案可靠的系统是业务稳定、快速发展的基石。那么,如何做到系统高可靠、高可用呢?下面首先讲一下高可用需要面临的常见问题,再从技术方面介绍几种提高系统可靠性、可用性的方法。高可用方法论下面的表格里,列...
2018-03-11 21:14:58 7892
转载 Apache Spark 内存管理详解
Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuff...
2018-03-11 21:11:06 528
转载 从实际案例聊聊Java应用的GC优化
当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容:优化前准备: 简单回顾JVM相关知识、介绍G...
2018-03-10 22:32:26 291
转载 Spark性能优化总结
近期优化了一个spark流量统计的程序,此程序跑5分钟小数据量日志不到5分钟,但相同的程序跑一天大数据量日志各种失败。经优化,使用160 vcores + 480G memory,一天的日志可在2.5小时内跑完,下面对一些优化的思路方法进行梳理。优化的目标保证大数据量下任务运行成功降低资源消耗提高计算性能三个目标优先级依次递减,首要解决的是程序能够跑通大数据量,资源性能尽量进行优化。基础优化这部分...
2018-03-10 22:31:24 197
转载 Spark性能优化指南:高级篇
前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的...
2018-03-10 22:25:00 311
转载 Spark性能优化指南:基础篇
前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、 流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用 Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更...
2018-03-10 22:23:56 182
转载 Spark性能调优之代码方面的优化
Spark性能调优之代码方面的优化1.避免创建重复的RDD 对性能没有问题,但会造成代码混乱 2.尽可能复用同一个RDD,减少产生RDD的个数 3.对多次使用的RDD进行持久化(cache,persist,checkpoint)如何选择一种最合适的持久化策略? 默认MEMORY_ONLY, 性能很高, 而且不需要复制一份数据的副本,远程传送到其他节点上(BlockManager中的Bl...
2018-03-10 21:13:15 373
转载 第二篇:使用Spark对MovieLens的特征进行提取
阅读目录前言类别特征提取派生特征提取文本特征提取归一化特征回到顶部前言 在对数据进行了初步探索后,想必读者对MovieLens数据集有了感性认识。而在数据挖掘/推荐引擎运行前,往往需要对数据预处理。预处理的重要性不言而喻,甚至比数据挖掘/推荐系统本身还重要。 然而完整的数据预处理工作会涉及到:缺失值,异常值,口径统一,去重,特征提取等等等等,可以单写一本书了,本文无法一一介...
2018-03-10 18:58:10 1457
转载 三篇:一个Spark推荐系统引擎的实现
阅读目录前言第一步:提取有效特征第二步:训练推荐模型第三步:使用ALS推荐模型第四步:物品推荐第五步:推荐效果评估小结回到顶部前言 经过2节对MovieLens数据集的学习,想必读者对MovieLens数据集认识的不错了;同时也顺带回顾了些Spark编程技巧,Python数据分析技巧。 本节将是让人兴奋的一节,它将实现一个基于Spark的推荐系统引擎。 PS1:...
2018-03-10 18:57:34 1655
转载 VisualVM 分析full GC问题记录
背景:JAVA APP,主要功能是处理日志并存入db现象:运行一段时间就出现OOM问题,查看GC log发现运行没多久就一直Full GC,并且抛出OOM的异常。[Full GC (Ergonomics) [PSYoungGen: 529920K->525999K(614912K)] [ParOldGen: 1398052K->1397869K(1398272K)] 1927972K-...
2018-03-07 21:32:31 3799
转载 Spark(一): 基本架构及原理
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)...
2018-03-07 21:29:23 259
转载 Spring IOC -bean对象的生命周期详解
生命周期执行的过程如下:1)spring对bean进行实例化,默认bean是单例2)spring对bean进行依赖注入3)如果bean实现了BeanNameAware接口,spring将bean的id传给setBeanName()方法4)如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactory方法,将BeanFactory实例传进来5)如果bean实现...
2018-03-07 21:27:03 387
转载 Spring面试题整理
Spring 概述1. 什么是spring?spring 是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring 是轻量的,基本的版本大约2MB。控制反转:Spring通...
2018-03-07 21:11:46 75151 5
转载 谈谈ConcurrentHashMap1.7和1.8的不同实现
知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。ConcurrentHashMap在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap,为了对ConcurrentHashMap有更深入的了解,本文将对ConcurrentHashMap1.7和1.8的不同实现进行分析。1.7实现...
2018-03-07 21:09:22 365
转载 微软等数据结构+算法面试100题全部答案集锦
1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。首先我们定义的二元查找树节点的数据结构如下:struct BSTreeNode{int m_nValue; // value of nodeBSTreeN...
2018-03-07 21:07:16 575
转载 快速排序算法原理及实现(单轴快速排序、三向切分快速排序、双轴快速排序)
1. 单轴快速排序的基本原理快速排序的基本思想就是从一个数组中任意挑选一个元素(通常来说会选择最左边的元素)作为中轴元素,将剩下的元素以中轴元素作为比较的标准,将小于等于中轴元素的放到中轴元素的左边,将大于中轴元素的放到中轴元素的右边,然后以当前中轴元素的位置为界,将左半部分子数组和右半部分子数组看成两个新的数组,重复上述操作,直到子数组的元素个数小于等于1(因为一个元素的数组必定是有序的)。以下...
2018-03-07 21:04:42 716 2
转载 JVM调优
jvm工具jps显示系统中所有Hotspot虚拟机进程jstat收集Hotspot虚拟机各方面运行数据jstack显示虚拟机的线程栈信息jinfo显示虚拟机的配置信息jmap用于生成虚拟机的内存快照信息jvm内存结构左边蓝色是虚存(应用运行时额外使用的内存,主要是系统级线程栈)、右边是实存(可以通过jvm参数控制)方法栈&本地方法栈:线程创建时产生,方法执行时生成栈帧方法区存储类的元数据信...
2018-03-06 22:10:06 306
转载 Java中的逃逸分析和TLAB以及Java对象分配
我们在学习使用Java的过程中,一般认为new出来的对象都是被分配在堆上,但是这个结论不是那么的绝对,通过对Java对象分配的过程分析,可以知道有两个地方会导致Java中new出来的对象并一定分别在所认为的堆上。这两个点分别是Java中的逃逸分析和TLAB(Thread Local Allocation Buffer)。本文首先对这两者进行介绍,而后对Java对象分配过程进行介绍。1. 逃逸分析1...
2018-03-06 22:06:03 180
转载 java类中serialversionuid 作用 是什么?举个例子说明
serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastEx...
2018-03-06 22:02:29 153
转载 Java类加载器ClassLoader总结
JAVA类装载方式,有两种:1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中。 2.显式装载, 通过class.forname()等方法,显式加载需要的类类加载的动态性体现:一个应用程序总是由n多个类组成,Java程序启动时,并不是一次把所有的类全部加载后再运行,它总是先把保证程序运行的基础类一次性加载到jvm中,其它类等到jvm用到的时候...
2018-03-06 21:59:36 152
转载 JVM初探:内存分配、GC原理与垃圾收集器
JVM内存的分配与回收大致可分为如下4个步骤: 何时分配 -> 怎样分配 -> 何时回收 -> 怎样回收.除了在概念上可简单认为new时分配外, 我们着重介绍后面的3个步骤:I. 怎样分配- JVM内存分配策略对象内存主要分配在新生代Eden区, 如果启用了本地线程分配缓冲, 则优先在TLAB上分配, 少数情况能会直接分配在老年代, 或被拆分成标量类型在栈上分配(JIT优化). ...
2018-03-06 21:56:22 370
转载 超级详细的二叉树的3种遍历方法的递归和非递归的实现
二叉树是一种非常重要的数据结构,很多的数据结构都是基于二叉树的基础演变过来的。二叉树的前,中, 后3种遍历方式,因为树的定义本身就是递归定义的,所以采用递归的方法来实现是很简单的。递归开销会很大,如果使用非递归的方式需要用到栈来进行模拟,递归本身也是建立在栈的基础上的。下面将详细介绍这3种方式的递归实现和非递归实现。(非递归遍历是面试笔试的重点!!!比较的详细(啰嗦。。。。))一:先序遍历(递归)...
2018-03-04 22:24:11 276
转载 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plain copy//将有序数组a[]和b[]合并到...
2018-03-04 21:58:39 162
转载 快速排序算法原理及实现(单轴快速排序、三向切分快速排序、双轴快速排序)
欢迎探讨,如有错误敬请指正如需转载,请注明出处http://www.cnblogs.com/nullzx/1. 单轴快速排序的基本原理快速排序的基本思想就是从一个数组中任意挑选一个元素(通常来说会选择最左边的元素)作为中轴元素,将剩下的元素以中轴元素作为比较的标准,将小于等于中轴元素的放到中轴元素的左边,将大于中轴元素的放到中轴元素的右边,然后以当前中轴元素的位置为界,将左半部分子数组和右半部分子...
2018-03-04 21:23:52 218
转载 图解堆排序
摘要: 作为选择排序的改进版,堆排序可以把每一趟元素的比较结果保存下来,以便我们在选择最小/大元素时对已经比较过的元素做出相应的调整。 堆排序是一种树形选择排序,在排序过程中可以把元素看成是一颗完全二叉树,每个节点都大(小)于它的两个子节点,当每个节点都大于等于它的两个子节点时,就称为大顶堆,也叫堆有序; 当每个节点都小于等于它的两个子节点时,就称为小顶堆。 ...
2018-03-04 21:05:29 358
转载 MySQL索引类型
一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|fulltext为可选参数,分别表示唯一索引...
2018-03-04 15:31:51 150
转载 MySQL优化
一、SQL语句优化(1)使用limit对查询结果的记录进行限定(2)避免select *,将需要查找的字段列出来(3)使用连接(join)来代替子查询(4)拆分大的delete或insert语句二、选择合适的数据类型(1)使用可存下数据的最小的数据类型,整型 < date,time < char,varchar < blob(2)使用简单的数据类型,整型比字符处理开销更小,因为字...
2018-03-04 15:12:22 193
转载 一次诡异的调优
近碰到的一个Java应用,费了半天劲还是没定位到是哪儿的问。发上来给大家看看,给点建议。 环境DB Server:32core HPUX DB2App Server * 2:8core HPUX WAS6.1 每个节点2个app初次测试现象WAS,DB2CPU均上不去,CPU、内存、磁盘、网络等都正常。从loadrunner报告来看,有两个用例很奇怪,在16/24/50用户下,呈线性增长。根据经验...
2018-03-04 13:33:27 142
转载 调优总结--调优方法
JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。 如何调优观察内存释放情况、集合类检查、对象树上面这些调优工具都...
2018-03-04 13:32:17 291
转载 JVM调优总结(3):垃圾回收面临的问题
如何区分垃圾上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,从哪儿开始查找哪些对象是正在被当前系统使用的。上面分析的堆和栈的区别,其中栈是真正进行程序执行地方,所...
2018-03-04 13:28:38 126
dx90bsdk.part3.rar
2012-12-16
dx9sdk.part2.rar
2012-12-16
dx9sdk.part1.rar
2012-12-16
dx90bsdk.part5.rar
2012-12-16
dx90bsdk.part1.rar
2012-12-16
dx9sdk.part5.rar
2012-12-16
dx9sdk.part4.rar
2012-12-16
dx9sdk.part3.rar
2012-12-16
dx90bsdk.part2.rar
2012-12-16
Directx 9.0 SDK
2012-12-16
设计模式:可复用面向对象软件的基础(GOF)[中文版].pdf
2012-04-24
C语言程序设计 谭浩强
2012-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人