优化

eclipse常用操作集合(一)

守給你的承諾、 提交于 2019-12-09 20:29:09
1.关于eclipse java web开发常用的工具之一,为什么选择eclipse而不用myeclipse、intellij idea等其他开发工具呢?有几个原因,一个是习惯问题,二是eclipse轻量,也许还有其他的原因,这里不深入讨论。 1.1 eclipse优化 网上有很多优化的教程,我这里主要讲讲我的优化内容,有比较明显效果的 1.1.1设置编辑器 window --> perferences-->General -->Editors --> File Associations 默认的打开方式可能包含预览和代码,所以一旦打开文件,就显得很卡,更改默认的打开方式,可以加速文件打开,提高效率。 1.1.2 取消Spell Check window -->perferences --> General --> Editors --> Text Editors -->Spelling 将 Enable spell cheking 前面复选框去掉。 1.1.3 取消不需要的启动项 window --> perferences -->General --> Startup and Shutdown 根据需要,来加载内容,取消不需要的部分即可 1.1.4 取消不需要的验证 window --> perferences --> Validation 根据需要 ,取消一部分验证

mysql 优化order by

扶醉桌前 提交于 2019-12-09 18:59:36
MySQL 中有两种排序方式: 1. 通过有序索引扫描直接返回有序数据 ,这种方式在使用explain分析查询的时候显示为using index, 不需要额外的排序,操作效率较高。 mysql> explain select start_time from warning_repaired order by start_time desc\G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: warning_repaired type: index possible_keys: NULL key: start_time key_len: 5 ref: NULL rows: 499471 Extra: Using index 1 row in set (0.00 sec) 2. 通过对返回数据进行排序,也就是通常所说的filesort排序 ,所有不是通过索引直接返回排序结果的排序 都叫filesort排序。 filesort并不代表通过磁盘文件进行排序,而只是进行了一个排序操作,至于排序操作 是否使用了磁盘文件或者临时表等,则取决于MySQL服务器对排序参数的设置和需要排序数据的大小。 mysql> explain select * from

利用 .HTACCESS 启用 GZIP 压缩静态内容

你离开我真会死。 提交于 2019-12-07 20:14:44
为了优化网站的访问速度,我们可以通过对静态内容进行压缩,从而减少网页加载的时间,大大节省用户的带宽。在这篇文章中,我将介绍如何使用 Apache 和.htaccess文件进行静态内容压缩。 首先让我介绍一下,我们可以使用两种不同的方法压缩内容: GZip 和 deflate 。 介绍 GZip方法在早期的apache版本中使用(在Apache 1.3之前)。但在那之后apache引入了deflate方法,相比GZip并没有太大的效果(但仍是非常好的)。然而,GZip在apache 1.3之后不再提供更多的支持。因此,你的Apache版本必须大于1.3,如果没有,你必须升级到最新版本的Apache。 在使用压缩之前,你必须启用apache的mod_deflate模块。要启用这个模块,你只需要从httpd.conf文件去掉这个模块行。 启用这个模块后,你的服务器准备好提供压缩的内容。但是,服务器只有当它接收到来自客户端的相应头文件时,才会创建压缩内容。所以,现在你需要将下面的代码放置到你网站的htaccess文件,才能通知服务器提供压缩的内容。 .HTACCESS代码 <ifmodule mod_deflate.c=""> # force deflate for mangled headers # developer.yahoo.com/blogs/ydn/posts/2010/12

MySQL的EXPLAIN的EXTRA

≡放荡痞女 提交于 2019-12-07 17:44:49
MySQL查询优化器执行查询的过程中对查询计划的重要补充信息。 (1)using where 使用了where子句来过滤元组 (2)using temporary 用临时表保存中间结果,常用于GROUP BY 和 ORDER BY操作中 (3)using filesort 使用文件完成排序操作,这是可能是ordery by,group by语句的结果,这可能是一个CPU密集型的过程,可以通过选择合适的索引来改进性能,用索引来为查询结果排序。 (4)using index 不需要读取数据文件,从索引树(索引文件)中即可获得信息。如果同时出现using where,表明索引被用来执行索引键值的查找,没有using where,表明索引用来读取数据而非执行查找动作。 (5)using join buffer 使用了连接缓存: Block Nested Loop,连接算法是块嵌套循环连接 Batched Key Access,连接算法是批量索引连接 (6)impossible where where子句的值总是false,不能用来获取任何元组 (7)select tables optimized away 在没有GROUP BY子句的情况下,基于索引优化MIN/MAX操作,或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。

生成对抗网络GAN的数学公式的前因后果

拥有回忆 提交于 2019-12-07 16:32:08
Basic Idea of GAN Generator G G是一个生成器,给定先验分布 Pprior(z) 我们希望得到生成分布 PG(x)  ,这里很难通过极大似然估计得到结果 Discriminator D D是一个函数,来衡量 PG(x) 与 Pdata(x) 之间的差距,这是用来取代极大似然估计 首先定义函数V(G, D)如下: 我们可以通过下面的式子求得最优的生成模型 下面我们来看看原文中几个重要的数学公式描述,首先我们直接上原始论文中的目标公式吧: 上述这个公式说白了就是一个最大最小优化问题,其实对应的也就是上述的两个优化过程。有人说如果不看别的,能达看到这个公式就拍案叫绝的地步,那就是机器学习的顶级专家,哈哈,真是前路漫漫。同时也说明这个简单的公式意义重大。 这个公式既然是最大最小的优化,那就不是一步完成的,其实对比我们的分析过程也是这样的,这里现优化D,然后在取优化G,本质上是两个优化问题,把拆解就如同下面两个公式: 优化D: 优化G: 可以看到,优化D的时候,也就是判别网络,其实没有生成网络什么事,后面的G(z)这里就相当于已经得到的假样本。优化D的公式的第一项,使的真样本x输入的时候,得到的结果越大越好,可以理解,因为需要真样本的预测结果越接近于1越好嘛。对于假样本,需要优化是的其结果越小越好,也就是D(G(z))越小越好,因为它的标签为0。但是呢第一项是越大

编程珠玑

好久不见. 提交于 2019-12-07 15:32:29
第五步已经完成了所有工作,但是新的需求来了,就是发布广告的人有一些特殊字符来绕过敏感词判断,我们需要把特殊字符过滤掉,那么正常想法就是使用正则表达式来过滤,但是我们实现的这个算法中,可以把特殊字符判断消化在其中: package test; import static util.PrintUtil.print; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; public class Test { static int key_max = 0; // 敏感词最大长度 static String[] keys = {"办证", "气枪出售", "裸聊", "裸表演", "土枪卖"}; static String tContent = "再办证顶"; static ArrayList<String> first = new ArrayList<String>(); static String[] sortFirst; static char[] charFirst; static HashMap<String,

编程珠玑

…衆ロ難τιáo~ 提交于 2019-12-07 15:32:16
到第三步,已经把算法优化的精髓掌握了,用树形结构来承载。 但是有些细节不容忽视,我们大量使用了ArrayList.contains,效率非常不高。 这里进行进一步优化,就是“疯狂的排序、疯狂的二分查找”。 package test; import static util.PrintUtil.print; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; public class Test { static String[] keys = {"办证", "气枪出售", "裸聊", "裸表演", "土枪卖"}; static String tContent = "再办证顶"; static ArrayList<String> first = new ArrayList<String>(); static String[] sortFirst; static HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();

编程珠玑

萝らか妹 提交于 2019-12-07 15:32:01
厚着脸皮,使用“编程珠玑”。 需求: 判断出发布内容是否含有敏感词。 敏感词:办证、气枪、裸聊 发布内容:***************** 第一步:快速实现 实现主要功能,没有什么特别地方。但是有个很重要问题, 当敏感词超过了一定量时候,效率将会急剧下降 。 因为不管发布内容多少,每次需要循环敏感词个数,假设发布内容“顶”,敏感词达到了1000个,循环1000次,将明显消耗性能。 package test; import static util.PrintUtil.*; public class Test { static String[] keys = {"办证", "气枪", "裸聊"}; static String tContent = "测试内办证容"; /** * 快速实现的方法 */ public final static String test1(String content) { for (String k : keys) { if (content.indexOf(k) > -1) return k; } return null; } public static void main(String[] args) { long time1 = System.currentTimeMillis(); print(test1(tContent)); print(

ReactNative For Android 项目实战总结

半世苍凉 提交于 2019-12-07 15:17:53
版权声明:本文由王少鸣原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/159 来源:腾云阁 https://www.qcloud.com/community Android Qzone 6.1版本在情侣空间涉水React Native,以动态插件方式将情侣空间进行React Natived的改造。在情侣空间基础上,Android Qzone 6.2版本以融合的方式将话题圈进行React Native改造。本文主要讲述话题圈的开发改造流程,相关数据对比及性能优化,本次改造ReactNative基于15Release。 一.Android侧项目整体开发流程 二.ReactNative改造后话题圈整体流程 三.ReactNative性能优化之路 本次版本开发周期较赶,加上视频组件本身相对复杂,融入ReactNative耗时较多,部分优化规划在二期实施。 1.包精简 版本对比: 情侣独立插件:7.2m。 话题圈:本次ReactNative框架移植入Qzone整体仅加大了3.2m。 主要优化点: 1)去除了小平台so库。 2)复用Qzone support jar。 二期规划: 1)在Qzone与ReactNative中间加Adapter,使ReactNative适配Qzone本身网络库及图片库

PHP中HASH函数的优化技巧

笑着哭i 提交于 2019-12-07 04:26:26
Hash数据结构是一种非常常见的数据结构,作为一个程序员,你可能每天都在和它接触, 尽管很多时候你可能没有意识到。Hash在PHP内核中扮演了非常重要的角色,数组、变量作用域、函数参数列表等均是基于Hash实现。所以,在PHP里你能看到各种对于Hash的优化。 Hash数据结构 Hash数据结构,本质上为了解决计算机中真正意义的数组只能使用数字作为索引,而程序员却经常需要使用字符串或者其他更复杂的类型来作为数组key的问题。首先我们需要一个函数能把字符串转成数字。然后,由于数组的长度有限,我们还需要把这个数字映射到数组长度的区间里,一般使用取模操作。最后, 如果两个字符串最终计算出来的Hash值一样,将保存到数组相同的位置上,这种情况叫做Hash冲突。解决冲突的常见办法之一就是拉链法, 就是将Hash冲突的数据维护在一个链表里; 另一种比较常见的解决冲突的办法叫开放寻址。下图所示是一个典型的Hash结构: Hash函数的最优情况是,将key平均分布在数组空间中, 这样能获得最大的性能。最坏的情况是完全冲突,这个时候Hash表事实上已经退化为一个链表。前几年比较火的Hash攻击事实上就是构造大量的冲突key,使PHP的POST数组退化为链表,从而耗尽服务器的CPU资源。 因此我们可以得出一个结论, 一个优秀的hash函数应该符合两点: 足够随机分布,足够快 。 DJB2算法