adaptive

【Dubbo源码阅读系列】之 Dubbo SPI 机制

北城以北 提交于 2020-11-23 05:45:56
最近抽空开始了 Dubbo 源码的阅读之旅,希望可以通过写文章的方式记录和分享自己对 Dubbo 的理解。如果在本文出现一些纰漏或者错误之处,也希望大家不吝指出。 Dubbo SPI 介绍 Java SPI 在阅读本文之前可能需要你对 Java SPI(Service Provider Interface) 机制有过简单的了解。这里简单介绍下:在面向对象的设计中,我们提倡模块之间基于接口编程。不同模块可能会有不同的具体实现,但是为了避免模块的之间的耦合过大,我们需要一种有效的服务(服务实现)发现机制来选择具体模块。SPI 就是这样一种基于接口编程+策略模式+配置文件,同时可供使用者根据自己的实际需要启用/替换模块具体实现的方案。 Dubbo SPI 的改进点 以下内容摘录自 https://dubbo.gitbooks.io/dubbo-dev-book/SPI.html Dubbo 的 扩展点 加载从 JDK 标准的 SPI (Service Provider Interface) 扩展点发现机制加强而来。 JDK 标准的 SPI 会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源。 如果扩展点加载失败,连扩展点的名称都拿不到了。比如:JDK 标准的 ScriptEngine,通过 getName() 获取脚本类型的名称,但如果

Dubbo(二):深入理解Dubbo源码之Dubbo的服务发现SPI机制

♀尐吖头ヾ 提交于 2020-11-23 05:36:24
一、前言   用到微服务就不得不来谈谈服务发现的话题。通俗的来说,就是在提供服务方把服务注册到注册中心,并且告诉服务消费方现在已经存在了这个服务。那么里面的细节到底是怎么通过代码实现的呢,现在我们来看看Dubbo中的SPI机制 二、SPI简介   SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件 ,加载实现类,这样 运行时可以动态的为接口替换实现类 三、Dubbo中的SPI   Dubbo与上面的普通的Java方式实现SPI不同,在Dubbo中重新实现了一套功能更强的SPI机制,即通过键值对的方式进行配置及缓存。其中也使用ConcurrentHashMap与synchronize防止并发问题出现。主要逻辑封装在ExtensionLoader中。下面我们看看源码。 四、ExtensionLoader源码解析   由于内部的方法实在太多,我们只挑选与实现SPI的重要逻辑部分拿出来讲解。     1、getExtensionLoader(Class<T> type) 1 public static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type) { 2 if (type == null ) { 3

重要,知识点:InnoDB的插入缓冲

▼魔方 西西 提交于 2020-11-22 21:01:24
InnoDB引擎有几个重点特性,为其带来了更好的性能和可靠性: 插入缓冲(Insert Buffer) 两次写(Double Write) 自适应哈希索引(Adaptive Hash Index) 异步IO(Async IO) 刷新邻接页(Flush Neighbor Page) 今天我们的主题就是 插入缓冲(Insert Buffer) ,由于InnoDB引擎底层数据存储结构式B+树,而对于索引我们又有聚集索引和非聚集索引。 在进行数据插入时必然会引起索引的变化,聚集索引不必说,一般都是递增有序的。而非聚集索引就不一定是什么数据了,其离散性导致了在插入时结构的不断变化,从而导致插入性能降低。 所以为了解决非聚集索引插入性能的问题,InnoDB引擎 创造了Insert Buffer。 Insert Buffer 的存储 看到上图,可能大家会认为Insert Buffer 就是InnoDB 缓冲池的一个组成部分。 重点 :其实对也不对,InnoDB 缓冲池确实包含了Insert Buffer的信息,但Insert Buffer 其实和数据页一样,也是物理存在的(以B+树的形式存在共享表空间中)。 Insert Buffer 的作用 先说几个点: 一张表只能有一个主键索引,那是因为其物理存储是一个B+树。(别忘了聚集索引叶子节点存储的数据,而数据只有一份)

Apache Spark SQL 参数介绍

我与影子孤独终老i 提交于 2020-11-20 16:06:27
文章目录 1 spark.sql.adaptive.enabled 2 spark.sql.adaptive.minNumPostShufflePartitions 3 spark.sql.adaptive.shuffle.targetPostShuffleInputSize 4 spark.sql.allowMultipleContexts 5 spark.sql.autoBroadcastJoinThreshold 6 spark.sql.avro.compression.codec 7 spark.sql.broadcastTimeout 8 spark.sql.caseSensitive 9 spark.sql.cbo.enabled 10 spark.sql.cbo.joinReorder.enabled 11 spark.sql.cbo.starSchemaDetection 12 spark.sql.codegen.comments 13 spark.sql.codegen.factoryMode 14 spark.sql.codegen.fallback 15 spark.sql.codegen.hugeMethodLimit 16 spark.sql.codegen.useIdInClassName 17 spark.sql.codegen.maxFields

Paper | Contrast Limited Adaptive Histogram Equalization

不羁岁月 提交于 2020-11-19 04:08:37
Contrast Limited Adaptive Histogram Equalization Contrast Limited Adaptive Histogram Equalization 1. 背景 1.1. 对比度和直方图均衡HE 1.2 HE的问题 1.3 AHE 1.4 底噪问题 2. CLAHE 2.1 效果展示 2.2 算法格式和细节 1. 背景 1.1. 对比度和直方图均衡HE “对比度contrast ratio”这一概念,类似于“动态范围dynamic range”,衡量的是图像中亮区与暗区的比例。 对比度实际上没有统一的测量标准,参见: 维基百科 但我们知道,对比度是影响图像视觉效果的重要因素。 对比度小的图像,其色彩层次少,看起来要么太亮,要么太暗。如下图(太暗): 实际上摄影师是为了追求这种效果啦,但我们还是拿来做一个demo。 利用MATLAB内置的histeq函数,可以得到对比度增强的图片: img=imread('Cloudy Night View.jpg'); rimg=img(:,:,1); gimg=img(:,:,2); bimg=img(:,:,3); resultr=histeq(rimg); resultg=histeq(gimg); resultb=histeq(bimg); result=cat(3,resultr

网络工程师成长日记389-防火墙

雨燕双飞 提交于 2020-11-17 09:07:15
这是网络工程师成长日记的第389篇连载文章,记录网络工程师行业的点点滴滴,结交IT行业有缘之人 为了保证客户网络信息,本文删除所有配置的机密信息和IP地址(以X.X.X.X格式隐藏)等信息 在老大的安排下,我和另外两个同学去做工程,地点是商洛市某县纪律检查监督局,主要任务是负责Cisco ASA 5505设备的安装与调试。 这是我在公司所接的第一个工程,心里肯定紧张,而更紧张的还在后面。24号早上8:30,我们来到了公司。 本来王说的是调试PIX设备,可托付给我们的设备上,写着Cisco ASA 5505 Series的字样,突然傻眼了。 由于时间有限,王大概给我们讲解了这台ASA的使用方法,及一些重要配置的注意事项。 临行前叮嘱我们:完成任务后,如果客户还有什么要求,一定要耐心解决。如遇问题,随时联系。 10:30,我们到了西安火车站,买了车票。10:50,乘长途公交去往某。 在询问了司机师傅后,知道我们将有5小时的行程。 就这样,我们离开了西安,踏上了旅程。 在路上,为了解闷,上网乱搜了一些关于ASA的信息:ASA,Adaptive Security Appliance(适应性安全产品),是Cisco公司在2005年5月推出了一个新的产品。 接口近似PIX,但两者在性能方面有很大的差异。 即使是ASA最低的型号,其所提供的性能也比基础的PIX高得多。 说真的,当时心里很没底

NeurIPS 2020 | 清华大学提出:通用、高效的神经网络自适应推理框架

邮差的信 提交于 2020-11-17 03:45:34
来源:人工智能AI技术 本文 约3400字 ,建议阅读 7 分钟 本文介绍我们被NeurIPS 2020会议录用的一篇文章。 本文主要介绍我们被NeurIPS 2020会议录用的一篇文章:Glance and Focus: a Dynamic Approach to Reducing Spatial Redundancy in Image Classification。 论文: https://arxiv.org/abs/2010.05300 代码和预训练模型已经在Github上面放出: https://github.com/blackfeather-wang/GFNet-Pytorch 这项工作提出了一个通用于 绝大多数CNN 的自适应推理框架,其效果比较明显,在同等精度的条件下, 将MobileNetV3的平均推理速度加快了30%,将ResNet/DenseNet加速了3倍以上,且在iPhone XS Max上的实际测速和理论结果高度吻合。 此外,它的计算开销可以简单地 动态在线调整,无需额外训练。 (太长不看版)下面一张图可以概括我们做的事情:将图像识别建模为序列决策过程,先将缩略图输入神经网络(Glance),再不断选择最关键的图像区域进行处理(Focus,利用强化学习实现),直至网络产生一个足够可信的预测结果时停止;对于简单和困难的样本分配不同的计算资源,以提升整体效率。

如何理解归一化(Normalization)对于神经网络(深度学习)的帮助?

早过忘川 提交于 2020-11-15 18:16:05
如何理解归一化(Normalization)对于神经网络(深度学习)的帮助? 作者:知乎用户 链接:https://www.zhihu.com/question/326034346/answer/730051338 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 回顾一下围绕normalization的一些工作(由最新到最旧的BatchNorm): 2019, Weight Standardization (没有发表,但是有大佬Alan Yuille加持) Weight Standardization 2019 WS叫权重标准化,建立在 BN可以平滑损失landscape / BN可以平滑激活值 这个观点上,进一步提升GN的效果匹配到BN的水平上,针对GN在micro-batch训练时性能不及BN。WS的原理是: 减小损失和梯度的Lipschitz常数 。 2019, Dynamic Normalization Differentiable Dynamic Normalization for Learning Deep Representation ICML 2019 跟SN类似,加入了GN。 2019, Switchable Normalization Differentiable Learning-to-Normalize via

ECCV 2020 论文大盘点-人员重识别(ReID)篇

女生的网名这么多〃 提交于 2020-11-15 08:04:32
本文盘点ECCV 2020 中所有与人员再识别(Person Re-Identification,ReID)相关的论文,总计 24 篇,其中两篇Oral 论文,15篇已经或者将开源代码。 这一领域可称为时视频监控领域的核心技术,已经成为近几年的研究热点,其中跨域的ReID和如何利用非标签数据的无监督方法吸引的研究学者众多。 下载包含这些论文的 ECCV 2020 所有论文: ECCV 2020 论文合集下载,分类盘点进行中 跨域人员 重识别 Joint Disentangling and Adaptation for Cross-Domain Person Re-Identification 作者 | Yang Zou, Xiaodong Yang, Zhiding Yu, B.V.K. Vijaya Kumar, Jan Kautz 单位 | 卡内基梅隆大学;英伟达 论文 | https://arxiv.org/abs/2007.10315 代码 | https://github.com/NVlabs/DG-Net-PP(404) 备注 | ECCV 2020 Oral Generalizing Person Re-Identification by Camera-Aware Invariance Learning and Cross-Domain Mixup 作者 |

ECCV 2020 论文大盘点-人员重识别

北城以北 提交于 2020-11-14 04:00:04
本文盘点ECCV 2020 中所有与人员再识别(Person Re-Identification,ReID)相关的论文,总计 24 篇,其中两篇Oral 论文,15篇已经或者将开源代码。 这一领域可称为时视频监控领域的核心技术,已经成为近几年的研究热点,其中跨域的ReID和如何利用非标签数据的无监督方法吸引的研究学者众多。 下载包含这些论文的 ECCV 2020 所有论文: ECCV 2020 论文合集下载,分类盘点进行中 跨域人员重识别 Joint Disentangling and Adaptation for Cross-Domain Person Re-Identification 作者 | Yang Zou, Xiaodong Yang, Zhiding Yu, B.V.K. Vijaya Kumar, Jan Kautz 单位 | 卡内基梅隆大学;英伟达 论文 | https://arxiv.org/abs/2007.10315 代码 | https://github.com/NVlabs/DG-Net-PP(404) 备注 | ECCV 2020 Oral Generalizing Person Re-Identification by Camera-Aware Invariance Learning and Cross-Domain Mixup 作者 |