内存管理机制:引用计数、垃圾回收、内存池 引用计数: 引用计数是一种非常高效的内存管理手段,当一个Python对象引用时其引用计数加一,当其不再被一个变量引用时则减一。当引用计数等于0时对象被删除。 1.引用计数: 引用计数也是一种垃圾收集机制,而且也是一种最直观,最简单的垃圾收集技术。当 Pyth ...
分类:
编程语言 时间:
2019-03-25 20:45:00
阅读次数:
211
索引优化分析: 性能分析: EXPLAIN关键字是什么? 1、简单说:查询执行计划 2、使用EXPLAIN关键字可以模拟优化器执行SQL查询于, 从而知道MySQL是如何处理你的SQL语句的 分析你的查询语句或是表结构的性能瓶颈 <! more EXPLAIN关键字如何使用? EXPLAIN后跟上S ...
分类:
数据库 时间:
2019-03-24 23:04:36
阅读次数:
214
【使用场景】 对RDD使用join类操作,或者是在Spark SQL中使用join语句时,而且join操作中的一个RDD或表的数据量比较小(例如几百MB或者1~2GB),比较适用此方案。。 【解决方案】 小表join大表转为小表broadcast+map大表实现。具体为: 普通的join是会shuf ...
分类:
其他好文 时间:
2019-03-24 10:02:41
阅读次数:
515
堆内存溢出: 此种溢出,加内存只能缓解问题,不能根除问题,需优化代码堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java heap space 永久代溢出 如果发生,则是在初始化的时候,空间太小,解决办法,扩大空间类的一些信 ...
分类:
其他好文 时间:
2019-03-23 13:03:05
阅读次数:
165
【使用场景】 对RDD执行reduceByKey等聚合类shuffle算子或者在Spark SQL中使用group by语句进行分组聚合时,经过sample或日志、界面定位,发生了数据倾斜。 【解决方案】 局部聚合+全局聚合,进行两阶段聚合。具体为: 将原本相同的key通过附加随机前缀的方式,变成多 ...
分类:
其他好文 时间:
2019-03-23 00:18:20
阅读次数:
180
Java之JVM监控工具分享 JVM的基本知识常用的也就是 ,`内存区域、分配、OOM GC JVM参数调优` 几个链接自己看: "内存区域&类加载机制" "分配策略&垃圾回收算法、收集器" 今天结合代码讲一讲常用的java自带工具讲解,这些命令一般都是jdk/lib/tools.jar中。用来监控 ...
分类:
编程语言 时间:
2019-03-22 13:06:34
阅读次数:
499
应用程序慢如牛,原因多多,可能是网络的原因、可能是系统架构的原因,还有可能是数据库的原因。 那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们也有莫大的关系 程序中嵌入的一行行的SQL语句,如果使用了一些优化小技巧,定能达到事半功倍的效果... ...
分类:
其他好文 时间:
2019-03-22 11:50:57
阅读次数:
110
【业务场景】 在Spark的统计开发过程中,肯定会遇到类似小维表join大业务表的场景,或者需要在算子函数中使用外部变量的场景(尤其是大变量,比如100M以上的大集合),那么此时应该使用Spark的广播(Broadcast)功能来提升性能。 【原理说明】 在算子函数中使用到外部变量或两表join时, ...
分类:
其他好文 时间:
2019-03-21 01:06:28
阅读次数:
180
基本原理 1. 启动 WebSocket 进行基于 inspect protocol 双工通信 1. current_node_process current_websocket current_inspect_tool 2. 启动 HTTP 服务,记录源(Meta)信息 3. 每个程序会生成一个 ...
分类:
Web程序 时间:
2019-03-21 01:00:18
阅读次数:
228
1.尽量减少值传递,多用指针和引用来传递参数 值传递要拷贝对象,引用传递不用 2.++i和i++的效率问题 i++开辟了临时变量,效率低 3.将小粒度函数声明为内联函数 内联函数直接会直接展开,不需要函数调用的开销 4.减少函数调用 函数调用需要两次跳转,外加栈帧的内存操作 5.优先使用迭代而不是递 ...
分类:
编程语言 时间:
2019-03-20 22:13:12
阅读次数:
167