2019-10-23 14:26
前言
diff算法一直是React系统最核心的部分,并且由于演化自传统diff,使得比较方式从O(n^3)降级到O(n),然后又改成了链表方式,可谓是变化万千。
传统Diff算法
传统diff算法需要循环比较两棵树,所有节点的循环,那么单纯比较次数就是O(n^2),n*n
P L
A A
/ \ / \
/ \ / \
...
2019-10-23 14:59
很多技术人总是抱怨 新技术/新框架/新概念 太多了,总是学不完,抱怨实在是学不动了。哈哈,这不,最近「 中台 」这么火热,要不要停止抱怨,再咬咬牙学一波?...
2019-10-23 14:54
职责链模式是设计模式中行为型的一种设计模式;
定义:
使多个对象都有机会处理请求,从而避免请求的发送者与接收者之间的耦合关系,将这些处理请求的对象形成一个链,并沿着这个链传递请求,直到有一个对象处理它为止;
白话解释:
作者坐标武汉,1000+万人口的新一线城市 ;以早高峰公交为例,早上早高峰的时候通常都是公交车前门拥堵,以至于没办法刷卡乘车;但是后门相对来说会空一些,这时我们选择后门上车,但是我们后门上车就刷不了卡;逃单?不存在的,这可不是我们作为讲文明、有素质的新一代青年应该做的;于是,我们往前面传递公交卡,请求前面的乘客帮忙传递至刷卡器处刷卡,但是我们是在后门,刷卡器是在前门,我们这传递的过程中会通过请求多位乘客帮忙传递公交卡,这个传递的过程就是一种职责链模式,每一位传递的乘客就是职责链中的节点对象;
...
2019-10-23 14:07
在网络传输中,粘包和半包应该是最常出现的问题,作为 Java 中最常使用的 NIO 网络框架 Netty,它又是如何解决的呢?今天就让我们来看看。定义...
2019-10-22 17:21
自己动手撸一个LinkedList
1. 原理
LinkedList是基于双链表的动态数组,数据添加删除效率高,只需要改变指针指向即可,但是访问数据的平均效率低,需要对链表进行遍历。因此,LinkedList善于进行一些插入、删除操作,不利于进行检索操作。LinkedList和ArrayList这两个list在我们代码里会经常用到,因此,小编自定义实现LinkedList的简易版--MyLinkedList。
2. public API
void clear() --> 置空
...
2019-10-22 16:56
目录
元学习(Meta-learning)
元学习被用在了哪些地方?
Few-Shot Learning(小样本学习)
最近的元学习方法如何工作
Model-Agnostic Meta-Learning (MAML)
元学习(Meta-learning)
智能的一个关键方面是多功能性——做许多不同事情的能力。当前的AI系统可以做到精通于某一项技能,但是,如果我们要求AI系统执行各种看似简单的问题(用同一个模型去解决不同问题),它将会变得十分困难。相反,人类可以明智地利用以往经验并采取行动以适应各种新的情况。因此我们希望 agent 能够像人类一样利用以往经验来解决新的问题,而不是将解决新问题的方法从头学起。Learning to learn 或者 meta-larning 是朝这个方向发展的关键一步,它们可以在其生命周期内不断学习各种任务。
...
2019-10-22 16:02
精灵就是cocos是屏幕上移动的对象,它能被控制,比如我们HelloWorld场景的这个图片就是精灵(Sprite)
img
怎么才算精灵?你能控制它的,就是一个精灵,否则就只是一个节点(Node)
准确的说,精灵是一个能通过改变自身的属性:角度,位置,缩放,颜色等,变成可控制动画的 2D 图像
精灵很容易被创建,它有一些可以被配置的属性,比如:位置,旋转角度,缩放比例,透明度,颜色,等等
Copy
auto mySprite = Sprite::create("xxxxxx.png");
...
2019-10-22 16:10
一、模型可解释性
近年来,机器学习(深度学习)取得了一系列骄人战绩,但是其模型的深度和复杂度远远超出了人类理解的范畴,或者称之为黑盒(机器是否同样不能理解?),当一个机器学习模型泛化性能很好时,我们可以通过交叉验证验证其准确性,并将其应用在生产环境中,但是很难去解释这个模型为什么会做出此种预测,是基于什么样的考虑?作为机器学习从业者很容易想清楚为什么有些模型存在性别歧视、种族歧视和民族仇恨言论(训练样本的问题),但是很多场景下我们需要向模型使用方作出解释,让其清楚模型为什么要做出此种预测,如模型替代医生判断病情,给出病人合理的解释至关重要,在商业场景中,模型为公司做出决策,需要给出令管理层信服的解释。另外,给出解释也可以帮助我们进一步改善模型,优化特征,提高泛化性。
...
2019-10-22 16:18
昨天在比较完C++中std::vector的两个方法的性能差异并留下记录后——编程杂谈——使用emplace_back取代push_back,今日尝试在C#中测试对应功能的性能。
C#中对应std::vector的数据结构为List。更多的对应关系可以参照下面:
std::vector - List
std::list - LinkedList
std::map - Dictionary
std::set - HashSet
std::multimap - Dictionary
...
2019-10-22 16:50
本文导读:
生产故障场景介绍
TCP 建连三次握手过程
TCP 断连四次挥手过程
结合 Java 堆栈剖析源码
再从堆栈中找到"罪魁祸首"
问题优化方案总结
1、生产故障场景介绍
业务简介:
该服务主要是提供对外的代理接口,大部分接口都会调用第三方接口,获取数据后做聚合处理后,提供给客户端使用。
有一天晚上,系统正处于高峰期间,项目组小伙伴正在津津有味的吃着「加班餐」,刚把🍚塞进嘴里,邮件和短信同时发起来告警。
有一台服务器接口超时,平时偶尔也会收到类似告警,有时会因为网络波动等原因。实在不好意思,没事总让人家「网络」同学背锅 : )。但是,这次告警并没有收敛,持续告警了十几分钟以上,感到了不妙。
...
2019-10-22 16:22
一、前言本篇文章将讲述Spring Security 动态分配url权限,未登录权限控制,登录过后根据登录用户角色授予访问url权限...
2019-10-22 16:47
作为一名应用系统开发人员,为什么要关注数据内部的存储和检索呢?首先,你不太可能从头开始实现一套自己的存储引擎,往往需要从众多现有的存储引擎中选择一个适合自己应用的存储引擎。因此,为了针对你特定的工作负载而对数据库调优时,最好对存储引擎的底层机制有一个大概的了解。
今天我们就先来了解下关系型数据库MySQL和NoSQL存储引擎HBase的底层存储机制。对于一个数据库的性能来说,其数据的组织方式至关重要。众所周知,数据库的数据大多存储在磁盘上,而磁盘的访问相对内存的访问来说是一项很耗时的操作,对比如下。因此,提高数据库数据的查找速度的关键点之一便是尽量减少磁盘的访问次数。
...