Wesley13 Wesley13
3年前
SQL优化器原理
摘要:在MaxCompute中,Join操作符的实现算法之一名为"HashJoin",其实现原理是,把小表的数据全部读入内存中,并拷贝多份分发到大表数据所在机器,在map阶段直接扫描大表数据与内存中的小表数据进行匹配。    这是MaxCompute有关SQL优化器原理的系列文章之一。我们会陆续推出SQL优化器有关优化规则和框架
Wesley13 Wesley13
3年前
java实现大文件下载(http方式)
java实现大文件下载,基于http方式,控件神马的就不说了。思路:下载文件无非要读取文件然后写文件,主要这两个步骤,主要难点:    1.读文件,就是硬盘到内存的过程,由于jdk内存限制,不能读的太大。    2.写文件,就是响应到浏览器端的过程,http协议是短链接,如果写文件太慢,时间过久,会造成浏览器死掉。知识点:
Stella981 Stella981
3年前
Dalvik与JVM
Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运
Stella981 Stella981
3年前
Sisvel宣布成立AV1专利池 1050项专利许可面临收费
Sisvel将对近2000项AV1专利组合进行收费,流媒体视频或将受到新的成本约束,而一直致力于开源视频编解码器的AOMedia仍未给予具体回应。!(https://oscimg.oschina.net/oscnet/1d7c55e9a95c4ddbf713b7517a2bf068c0d.jpg)
Stella981 Stella981
3年前
Goroutine并发调度模型深入之实现一个协程池
并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题;Go语言作为一个出道以来就自带『高并发』光环的富二代编程语言,它的并发(并行)编程肯定是值得开发者去探究的,而Go语言中的并发(并行)编程是经由goroutine实现的,goroutine是golang最重要的特性之一,具有使用成本低、消耗资源低、能效高等特点,官方宣称
Wesley13 Wesley13
3年前
Java内功系列
面试官:你能简单介绍List和Set有什么区别吗?小憨:List是一个有序的集合,在内存是连续存储的,可以存储重复的元素,List查询快,增删慢;Set是一个无序的集合,在内存中不连续,不可以存储重复的元素,Set增删快,查询慢;面试官:那HashSet是如何保证元素不重复的?小憨:3分钟。。。
Stella981 Stella981
3年前
MemCache 入门极简教程
MemCache概述MemCache虽然被称为”分布式缓存”,但是MemCache本身完全不具备分布式的功能Memcache是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的Hash
Stella981 Stella981
3年前
Redis 持久化(10)
持久化机制Redis速度快,很大一部分原因是因为它所有的数据都存储在内存中。如果断电或者宕机,都会导致内存中的数据丢失。为了实现重启后数据不丢失,Redis提供了两种持久化的方案,一种是RDB快照(RedisDataBase),一种是AOF(AppendOnlyFile)。RDBRDB是Redis默认的持久化方案。当满足一定条
Wesley13 Wesley13
3年前
MQ之对比
activeMQ:高效、可扩展、稳定安全企业级消息通信rabbitMQ:分布式系统可靠、可扩展、功能丰富,内存式堆积,某些条件下触发换页动作将内存中消息换页到磁盘;支持多租户  不支持重试队列,二次封装延迟队列实现呢  拉模式,不回溯,支持消息追踪  多租户kafka:高吞吐量分布式发布订阅消息系统,可水平扩展,磁盘式堆积,冗余功能
Wesley13 Wesley13
3年前
Go 常见并发模式实现(三):通过无缓冲通道创建协程池
!(https://oscimg.oschina.net/oscnet/4db0476cdc9149069b19b4338e3fdbda.jpg)上篇教程(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMjM5