优化

quartz在集群环境下解决方案

≯℡__Kan透↙ 提交于 2019-12-02 14:30:49
在集群环境下,大家会碰到一直困扰的问题,即多个 APP 下如何用 quartz 协调处理自动化 JOB 。 大家想象一下,现在有 A , B , C3 台机器同时作为集群服务器对外统一提供 SERVICE : A , B , C 3 台机器上各有一个 QUARTZ ,他们会按照即定的 SCHEDULE 自动执行各自的任务。 我们先不说实现什么功能,就说这样的架构其实有点像多线程。 那多线程里就会存在“资源竞争”的问题,即可能产生脏读,脏写,由于三台 APP SERVER 里都有 QUARTZ ,因此会存在重复处理 TASK 的现象。 一般外面的解决方案是只在一台 APP 上装 QUARTZ ,其它两台不装,这样集群就形同虚设了; 另一种解决方案是动代码,这样就要影响到原来已经写好的 QUARTZ JOB 的代码了,这对程序开发人员来说比较痛苦; 本人仔细看了一下 Spring 的结构和 QUARTZ 的文档,结合 Quartz 自身可以实例化进数据的特性找到了相关的解决方案。 本方案优点: 1. 每台作为集群点的 APP SERVER 上都可以布署 QUARTZ ; 2. QUARTZ 的 TASK ( 12 张表)实例化如数据库,基于数据库引擎及 High-Available 的策略(集群的一种策略)自动协调每个节点的 QUARTZ ,当任一一节点的 QUARTZ

选词优化思路总结

隐身守侯 提交于 2019-12-02 10:51:37
1.选品类目:厨房电器 > 果蔬消毒清洗机 2.选词思路: 2.1选词渠道 生意参谋查询手淘搜索进店关键词,主要竞品引流及成交词;淘宝搜索框下拉菜单词;直通车后台系统推荐词;竞品品牌和型号词等渠道搜集筛选后保留共计200个左右。大量选词的目的是为了获得更为广泛和有效的测试数据,为后期进行关键词优化提供数据支撑。 2.2 选词类别 包含品牌词、类目词、长尾词、竞品词、型号词等多种类别,多种性质的词放在一起测试,可以排除不同人群对不同词性的影响因素,数据更具有对比性。 2.3 关键词筛选 关键词基础质量得分需高于6分,剔除基础质量得分过低的词。 2.4 关键词排名 初始关键词综合排名在4-6名左右 3.养词思路 3.1 匹配方式 采取广泛匹配思路 这样能够更快速获取流量,劣势是会切到其他词,需要注意时刻通过实时进店访客观察和记录这些词的相关性,避免大量无效词的涌入。 3.2出价和人群 采取统一出价方式,中等出价,人群上着重对喜欢相似宝贝人群、收藏加购店内商品的人群、浏览未购买人群等黑盒人群进行高溢价,自定义人群进行低溢价,参考跑出来的数据进行优化。 3.3日限额及花费 采取递增方式进行,以加购成本为导向,对于加购效果好的词可以适当提价或者适当提升当日限额。 3.4地域和时间折扣 养词第一阶段不对地域和时间做过多人为干预,地域上除海外和港澳台以及偏远地区外全部进行投放,不设置时间折扣

(转)深度学习入门路线

萝らか妹 提交于 2019-12-02 10:49:40
/*------深度学习理论------------------------**/ 1. 深度学习介绍、全连接神经网络 为什么要做深读学习而不是宽度学习? 2. 反向传播算法 BP算法手工推导 3. 使用Keras实现全连接神经网络完成手写数字识别 4. mini-batch Gradient Descent 5. 神经网络的优化(0)----概述 神经网路的优化(1)----激活函数:梯度消失问题、ReLU、Maxout 神经网络的优化(2)----优化器、自适应学习率:Adagrad、RMSProp、Momentum、Adam 神经网络的优化(3)----Early Stopping 神经网络的优化(4)----正则化 神经网络的优化(5)----Dropout 6. 卷积神经网络 CNN结构演化 CNN的原理 怎么用Keras实现CNN CNN学到的到底是啥? Lenet-5 VGG GoogleNet 7. 循环神经网络 RNN的原理 LSTM /*--------环境搭建及使用--------------------**/ ubuntu18.10 + RTX2080Ti + CUDA10.0 + cuDNN7.5.0 + Anaconda(conda 4.5.12) + TensorFlow-gpu1.13.1 安装 各种环境查看 常见问题及解决 ubuntu16.04

JVM 线上故障排查基本操作--内容问题排查

岁酱吖の 提交于 2019-12-02 08:52:30
内存问题排查 说完了 CPU 的问题排查,再说说内存的排查,通常,内存的问题就是 GC 的问题,因为 Java 的内存由 GC 管理。有2种情况,一种是内存溢出了,一种是内存没有溢出,但 GC 不健康。 内存溢出的情况可以通过加上 -XX:+HeapDumpOnOutOfMemoryError 参数,该参数作用是:在程序内存溢出时输出 dump 文件。 有了 dump 文件,就可以通过 dump 分析工具进行分析了,比如常用的MAT,Jprofile,jvisualvm 等工具都可以分析,这些工具都能够看出到底是哪里溢出,哪里创建了大量的对象等等信息。 第二种情况就比较复杂了。GC 的健康问题。 通常一个健康的 GC 是什么状态呢?根据楼主的经验,YGC 5秒一次左右,每次不超过50毫秒,FGC 最好没有,CMS GC 一天一次左右。 而 GC 的优化有2个维度,一是频率,二是时长。 我们看YGC,首先看频率,如果 YGC 超过5秒一次,甚至更长,说明系统内存过大,应该缩小容量,如果频率很高,说明 Eden 区过小,可以将 Eden 区增大,但整个新生代的容量应该在堆的 30% - 40%之间,eden,from 和 to 的比例应该在 8:1:1左右,这个比例可根据对象晋升的大小进行调整。 如果 YGC 时间过长呢?YGC 有2个过程,一个是扫描,一个是复制,通常扫描速度很快

多线程volatile关键字

扶醉桌前 提交于 2019-12-02 05:10:47
编译优化 我们都知道,所有的高级程序设计语言所编写的源代码,都要经过编译系统或解释系统的翻译,转换为计算机硬件系统能够识别的机器语言代码,才能最终在计算机上执行。 而现代的编译或解释软件都很强大,很智能,它们会尽可能选择能让我们的程序以最高效率的形式工作,即,它们会尽可能地“优化”我们的代码,使得最终编译或解释出的机器语言代码与我们的源代码有所差异! 这里要涉及计算机存储体系的概念。 计算机存储体系 计算机体统有包括外存、内存等不同的存储层次,相对完整地说。计算机存储体系从“外”到“内”分为5层: 海量外存——存储空间最大,速度最慢; 外存——存储空间大,速度也比较慢; 内存——存储空间不是很大,速度却很快; 高速缓存——存储空间小得多,速度更快; 寄存器——存储空间最小,速度最快; 其实,寄存器已经是CPU的范畴了,它们是CPU不可或缺的组成部分。 在上述存储方式中,最快的是寄存器(组),是CPU指令访问的常客,但是,存储容量非常的少:内存是计算机指令与数据存储的最主要的空间,CPU可以访问内存,但与寄存器比较,对内存的访问速度要慢很多很多。 我们所编写的程序中,变量、数组的本质就是内存空间(无论是系统堆栈还是系统堆),对变量、数组元素的访问,就是对内存的访问。 对于像循环中的控制量 for ( int i = 0 ; i < 10 ; i ++ ) 中的变量i

Java中Synchronized的优化原理

假装没事ソ 提交于 2019-12-02 04:58:30
我们知道,从 JDK1.6 开始,Java 对 Synchronized 同步锁做了充分的优化,甚至在某些场景下,它的性能已经超越了 Lock 同步锁。那么就让我们来看看,它究竟是如何优化的。 原本的问题 Synchronized 是基于底层操作系统的 Mutex Lock 实现的,每次获取锁和释放锁的操作都会带来 用户态 和 内核态 的切换,从而增加系统性能开销。 因此,在锁竞争激烈的情况下, Synchronized 同步锁在性能上就表现得非常糟糕,它也常被大家称为 重量级锁 。 到了 JDK1.5 版本,并发包中新增了 Lock 接口来实现锁功能,它提供了与 Synchronized 关键字类似的同步功能,只是在使用时需要显示获取锁和释放锁。 在单个线程重复申请锁的情况下,JDK1.5 版本的 Lock 性能要比 Synchronized 锁的性能好很多,也就是当时的 Synchronized 并不具备 可重入锁 的功能。 那么当时的 Synchronized 是怎么实现的?又为什么不具备可重入的功能呢? Synchronized原理 JVM 中的同步是基于进入和退出管程(Monitor)对象实现的。每个对象实例都会有一个 Monitor,Monitor 可以和对象一起创建、销毁。 当多个线程同时访问一段同步代码时,多个线程会先被存放在 EntryList集合 (也可称为

SecureCRT最佳配色方案

丶灬走出姿态 提交于 2019-12-01 17:51:32
转自:http://blog.51cto.com/sandshell/2109176 SecureCRT优化调整: 通过SecureCRT顶部菜单中的:“选项”--->“全局选项”--->“编辑默认设置”--->“会话选项” 一、中文版本7配置如下 1、调整SecureCRT终端显示和回滚缓冲区大小 2、调整字体及光标颜色 如下图所示;选择四号字体。根据个人喜好调整字体大小即可,我习惯四号字体。 3、配置记录SSH操作的日志及输出:D:\application\SecureCRTSecureFX_HH_x64_7.0.0.326\Data\ssh_log\%S_%Y_%M_%D.log 4、配置本地机器和FTP/SFTP(SSH服务)文件传输的上传和下载的目录 上传目录:D:\application\SecureCRTSecureFX_HH_x64_7.0.0.326\Data\upload 下载目录:D:\application\SecureCRTSecureFX_HH_x64_7.0.0.326\Data\download 本地机器和FTP/SFTP(SSH服务)文件传输的上传和下载的目录配置如下: 文件传输FTP/SFTP(SSH服务)文件传输的上传和下载的目录配置如下: 本地窗口:D:\application\SecureCRTSecureFX_HH_x64_7.0.0

网站优化提升网页质量技巧大揭秘

寵の児 提交于 2019-12-01 10:02:49
怎样来进步网站的信费用呢?对付新站来说,就是要进步页面质量,包含页面的内容,贴实用户需求搜索的页面配置和外部链接的投票。综合起来就是要团结搜索引擎的收录“喜爱”,打造出搜索引擎喜好的内容,必然可以被收录的高质量页面信息。   要让百度喜好就要增进页面的索引代价,一样平常来说就是页面内容的信息量,针对行业内容举办的稀缺资源曝光,别人有的,我们一语道破;别人没有的,我们要重点推出。再就是页面质量要好,团结石榴算法和不相干搜索将那些弹窗、垃圾信息和不相干内容剔除页面。最后就是用户评述,全部一呼百应就是云云,对付有效户评述的页面,其存眷度每每是很高的,而那么不能吸引用户评述的页面,你可以“自评自解”这个在网站中是不会被搜索引擎查处的,并且不会被降权,还可以或许增进页面的活度。   网站优化    什么是优质的页面?北京网站优化以为一个优质的内容页面不只仅是环绕着某个需求点拓展内容,并且还要提供一些附加信息,这样可以办理用户的这一题目,用户还会举办信息的分享撒播,这就是一个高质量网页的首要特点。   那么,企业网站怎样才气打造出优质页面,可能在已有的页面长举办晋升,北京网站优化以为可以从以下几点来举办处理赏罚。   一、用户需求的说明与发掘   用户需求是一个很普及的名词,怎样证明你说的这个对象是用户存眷的?在许多时辰假如没稀有据的展 示是很难敦促一个有用页面的筹谋动作

国内最棒的移动广告优化及聚合平台--KeyMob

旧巷老猫 提交于 2019-12-01 08:53:30
借鉴着团队多年的探索与积累,KeyMob移动广告优化平台于2014年10月份正式上线。“随着移动互联网迅速发展,移动广告也释放出致命的吸引力,而国内的移动广告行业2010年年底才起步。 KeyMob最大的优势在于拥有专业的技术,这使得广告主能够精准的投放广告,开发者也能得到更多的收益。KeyMob成立之初因聚合了国内众多主流的广告平台,被行业内称之为“聚合平台”。KeyMob始终服务于开发者一方,促成开发者收益最大化。虽然被大家称为聚合平台,但是KeyMob负责人认为KeyMob是移动广告优化平台。 为了更快的适应国内广告平台市场的发展和移动应用开发者的需求,目前 KeyMob移动广告优化平台支持Android、IOS主流的开发系统。据KeyMob介绍,开发者只需嵌入KeyMob的SDK,即可在云端配置各个广告平台的展示比例和优先顺序,达到广告100%的填充率。 同时,整个行业也少不了广告主、广告平台、开发者的配合,因为它们正在创造一个很了不起的新行业,这行业将创造一个更美好的未来。 来源: oschina 链接: https://my.oschina.net/u/2651747/blog/665667

jit编译

和自甴很熟 提交于 2019-12-01 07:29:42
热点代码: 虚拟机中的字节码(.class文件内容)是由解释器( Interpreter )完成编译的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”。 什么是jit编译: 为了提高热点代码的执行效率,在运行时,即时编译器(JIT)会把这些代码编译成与本地平台相关的机器码,并进行各层次的优化,然后保存到内存中。 在 HotSpot 虚拟机中,内置了两个 JIT,分别为 C1 编译器和 C2 编译器,这两个编译器的编译过程是不一样的。 C1 编译器是一个简单快速的编译器,主要的关注点在于局部性的优化,适用于执行时间较短或对启动性能有要求的程序,例如,GUI 应用对界面启动速度就有一定要求。 C2 编译器是为长期运行的服务器端应用程序做性能调优的编译器,适用于执行时间较长或对峰值性能有要求的程序。根据各自的适配性,这两种即时编译也被称为 Client Compiler 和 Server Compiler。 如何探测代码为热点代码: 热点探测是基于计数器的热点探测,采用这种方法的虚拟机会为每个方法建立计数器统计方法的执行次数,如果执行次数超过一定的阈值就认为它是“热点方法”。 虚拟机为每个方法准备了两类计数器:方法调用计数器(Invocation Counter)和回边计数器(Back Edge Counter;在程序中遇到控制流向后跳转的指令称为