首页 文章 精选 留言 我的

精选列表

搜索[算力],共10000篇文章
优秀的个人博客,低调大师

面试必问的时间复杂度到底怎么算

高级工程师title的我,最近琢磨着好好刷刷算法题更高级一些,然鹅,当我准备回忆大学和面试时候学的数据结构之时,我发现自己对这个算法复杂度的记忆只有OOOOOooo 文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱 算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。 那么我们应该如何去衡量不同算法之间的优劣呢? 主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。 因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,有的时候时间和空间却又是「鱼和熊掌」,不可兼得的,那么我们就需要从中去取一个平衡点。 时间复杂度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或「时间频度」。记为T(n)。 时间频度T(n)中,n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。但有时我们想知道它变化时呈现什么规律,为此我们引入时间复杂度的概念。算法的时间复杂度也就是算法的时间度量,记作:T(n) = O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称「时间复杂度」。 这种表示方法我们称为「 大O符号表示法 」,又称为渐进符号,是用于描述函数渐进行为的数学符号 常见的时间复杂度量级有: 常数阶$O(1)$ 线性阶$O(n)$ 平方阶$O(n^2)$ 立方阶$O(n^3)$ 对数阶$O(logn)$ 线性对数阶$O(nlogn)$ 指数阶$O(2^n)$ 常数阶$O(1)$ $O(1)$,表示该算法的执行时间(或执行时占用空间)总是为一个常量,不论输入的数据集是大是小,只要是没有循环等复杂结构,那这个代码的时间复杂度就都是O(1),如: int i = 1; int j = 2; int k = i + j; 上述代码在执行的时候,它消耗的时候并不随着某个变量的增长而增长,那么无论这类代码有多长,即使有几万几十万行,都可以用$O(1)$来表示它的时间复杂度。 线性阶$O(n)$ $O(n)$,表示一个算法的性能会随着输入数据的大小变化而线性变化,如 for (int i = 0; i < n; i++) { j = i; j++; } 这段代码,for循环里面的代码会执行n遍,因此它消耗的时间是随着n的变化而变化的,因此这类代码都可以用$O(n)$来表示它的时间复杂度。 平方阶$O(n^2)$ $O(n²)$ 表示一个算法的性能将会随着输入数据的增长而呈现出二次增长。最常见的就是对输入数据进行嵌套循环。如果嵌套层级不断深入的话,算法的性能将会变为立方阶$O(n^3)$,$O(n^4)$,$O(n^k)$以此类推 for(x=1; i<=n; x++){ for(i=1; i<=n; i++){ j = i; j++; } } 指数阶$O(2^n)$ $O(2^n)$,表示一个算法的性能会随着输入数据的每次增加而增大两倍,典型的方法就是裴波那契数列的递归计算实现 int Fibonacci(int number) { if (number <= 1) return number; return Fibonacci(number - 2) + Fibonacci(number - 1); } 对数阶$O(logn)$ int i = 1; while(i<n) { i = i * 2; } 上面的代码,在while循环里面,每次都将 i 乘以 2,乘完之后,i 距离 n 就越来越近了,直到i不小于n退出。我们试着求解一下,假设循环次数为x,也就是说 2 的 x 次方等于 n,则由2^x=n得出x=log₂n。因此这个代码的时间复杂度为$O(logn)$ 线性对数阶$O(nlogn)$ 线性对数阶$O(nlogn) $,就是将时间复杂度为对数阶$O(logn)$的代码循环n遍的话,那么它的时间复杂度就是 n * O(logN),也就是了$O(nlogn)$,如下, for(m=1; m<n; m++) { i = 1; while(i<n) { i = i * 2; } } 除此之外,其实还有平均情况复杂度、最好时间复杂度、最坏时间复杂度。。。一般没有特殊说明的情况下,都是值最坏时间复杂度。 空间复杂度 空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的一个量度,同样反映的是一个趋势,一个算法所需的存储空间用f(n)表示。S(n)=O(f(n)),其中n为问题的规模,S(n)表示空间复杂度。 一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。 一般情况下,一个程序在机器上执行时,除了需要存储程序本身的指令、常数、变量和输入数据外,还需要存储对数据操作的存储单元。若输入数据所占空间只取决于问题本身,和算法无关,这样只需要分析该算法在实现时所需的辅助单元即可。若算法执行时所需的辅助空间相对于输入数据量而言是个常数,则称此算法为原地工作,空间复杂度为O(1)。当一个算法的空间复杂度与n成线性比例关系时,可表示为$0(n)$,类比时间复杂度。 空间复杂度比较常用的有:O(1)、O(n)、O(n²) 空间复杂度 $O(1)$ 如果算法执行所需要的临时空间不随着某个变量n的大小而变化,即此算法空间复杂度为一个常量,可表示为 O(1)举例: int i = 1; int j = 2; ++i; j++; int m = i + j; 代码中的 i、j、m 所分配的空间都不随着处理数据量变化,因此它的空间复杂度 S(n) = O(1) 空间复杂度 $O(n)$ int[] m = new int[n] for(i=1; i<=n; ++i) { j = i; j++; } 这段代码中,第一行new了一个数组出来,这个数据占用的大小为n,这段代码的2-6行,虽然有循环,但没有再分配新的空间,因此,这段代码的空间复杂度主要看第一行即可,即 S(n) = O(n) 复杂度速查表 来源:https://liam.page/2016/06/20/big-O-cheat-sheet/ 源地址:https://www.bigocheatsheet.com/ 图例 大-O 复杂度曲线 抽象数据结构的操作复杂度 数组排序 图操作 堆操作 参考 《大话数据结构》https://zhuanlan.zhihu.com/p/50479555

优秀的个人博客,低调大师

开发者简报:没用过 Vim,怎么算 Geeker?

文摘 了解渐进式JPEG和WebP格式 什么是渐进式jpeg 渐进式JPEG是使用与典型标准JPEG不同的编码过程创建的图像。传统上,JPEG从上到下,从左到右进行编码和解码。这被称为基线编码。但是,渐进式JPEG以不同的方式编码。当您看到渐进式JPEG加载时,您将看到整个图像的模糊版本,随着时间的推移,图像被解码或在浏览器中呈现时会变得更加清晰。 标准JPEG加载率为33%,66%和100% 渐进式JPEG加载,分别为33%,66%和100% 为什么要使用渐进式JPEG 渐进式JPEG的一个明显优势是存在感知性能提升。用户可以预览图像在下载完成之前的样子。此外,图像占用您网站的布局和空间加载速度更快,使整个过程感觉更快。渐进式JPEG通常也比非渐进式JPEG小,即使最终图像在视觉上是相同的。 重要的是,渐进式JPEG会占用更多的CPU和内存来进行编码和解码,因为图像数据会被多次解析。因此,虽然它确实可以让您更快地进行预览,但解码的总时间可能会接近2.5倍。 WebP WebP是一种现代图像格式,可为Web上的图像提供卓越的压缩,与PNG和JPEG等传统文件格式相比,文件大小平均节省30%以上。较小的图像意味着下载速度更快以及减少网络带宽,这两者都有助于页面显着更快地显示。 可以在Chrome开发者控制台,查看图像类型。 何时应该使用渐进式JPEG与WebP 除了使用延迟加载之外,使用WebP是理想方式。 如果你想使用渐进式JPEG,请确保你理解为什么要使用它们 - 因为它们也有缺点。我会警告不要使用渐进式JPEG格式来处理像缩略图这样的小图像,因为这些文件的文件大小往往比普通的JPEG图像大。 像任何东西一样,重要的是测试 并看看否真的减少了时间。在某些情况下,使用渐进式JPEG可能比WebP格式更好。例如,考虑文件大小差异。如果渐进式JPEG接近(在10kb到20kb之间)或小于WebP,则考虑使用渐进式JPEG而不是WebP。 渐进增强vs优雅降级 渐进增强:在网站设计初期以主体功能为主,一般都以IE为最低兼容对象并逐步的向主流浏览器兼容(如Chrome、Firefox等),这样就会使一些新的前端技术、功能无法全效展示。并追求极致的用户体验也就是说用户使用任何浏览器访问网页都不会觉得有什么不同。比如一些大型的公开网站、门户类网站都会使用渐进增强的方式开发,因为你不知道用户会使用什么样的浏览器和设备访问,你必须做到页面功能的全部兼容。 优雅降级:在网站设计初期以主流浏览器的标准为主,并赋予项目各种新技术和功能已达到最佳展示效果,然后在对一些不兼容的浏览器和设备做一些简单的向下兼容,或直接舍弃。有时我们在浏览一些web网页的时候会发现他有些提示:推荐使用某某浏览器或是请使用某某设备访问等等。这些web项目都舍弃了一些客户端来实现项目的最佳效果,而这种网站还是少数优雅降级的常用场景还有一些公司内部的系统或是特定用户和场景的应用。 教程 React的完整介绍 适合初学者的指南,涵盖了React的基础知识的概念。它不是React的编程指南,而是完整的介绍。 破解Android应用 本文并不是教你怎么去破解他人Android应用,而是帮助您成为具有安全意识的应用程序开发者。在本教程你能学到如下知识: 访问应用的私有数据 分析数据库 反编译代码 Vim历史和高效使用Vim 本文研究Vim历史,同时教你如何高效利用Vim JavaScript SEO基础知识 本指南介绍了Google搜索如何处理JavaScript以及改进web应用的最佳做法。 异步加载CSS的最简单方法 默认情况下,浏览器会同步加载外部CSS - 在下载和解析CSS时会影响页面渲染。本文教你如何使用最简单方式实现异步加载CSS。 在没有框架的情况下设计和构建渐进式Web应用程序(第1部分) 不需要计算机专业知识,也不需要了解JavaScript框架。仅需要一点HTML和CSS以及JavaScript基本知识,就能创建渐进式Web应用程序。 重构桌面版Slack 不要从头开始重写你的代码。Slack分享他们如何渐进逐步重构桌面版Slack。 Changefeed 精美的更改日志模块 资源&工具 exif-js 一个JavaScript库用于提取图片中的文字信息 JavaScript的基础知识(播客) 一个讲解JavaScript的基础知识播客网站 用Java实现的设计模式 通过简短介绍再搭配UML设计图 编程算法书 一本关于算法和Lisp的书,本书分为16章,3部分:基本数据结构,衍生数据和高级算法。作者计划每周在个人博客发布一部分内容,预计年底发布所有内容。 编写良好Common Lisp代码指南 编写良好可维护Common Lisp代码指南 JavaScript 代码规范 JavaScript 代码规范,自带 linter & 代码自动修正 Python - 100天从新手到大师 github五万star,只要你能坚持100天就能从零基础步入python编程高手。学习路线: Day01~15 - Python语言基础 Day16~Day20 - Python语言进阶 Day21~30 - Web前端入门 Day31~35 - 玩转Linux操作系统 Day36~40 - 数据库基础和进阶 Day41~55 - 实战Django Day56~60 - 实战Flask Day61~65 - 实战Tornado Day66~75 - 爬虫开发 Day76~90 - 数据处理和机器学习 Day91~100 - 团队项目开发 coding-interview-university 完整的计算机科学研究计划。 游戏源代码集合 这是PC游戏源代码的集合。大多数为商业产品,随后开放源代码。 Puffer 在浏览器中免费观看电视直播。可以观看NBC,CBS,ABC,PBS,FOX和Univision网络的美国电视台。 Puffer支持Chrome,Firefox和Edge浏览器,PC或Android手机或平板电脑。 不支持在iPhone或iPad或Safari浏览器中使用。 纯JS生成WiFi二维码 纯JS生成WIFI:S:<SSID>;T:<WPA|WEP|>;P:<password>;;二维码,生成的二维码保存HTML5 localStorage中,不在服务器。 编程讲座 主要收录关于编程语言架构设计相关内容视频 calisphere Calisphere是加利福尼亚州著名图书馆,档案馆和博物馆门户网站。收录超过1,275,000张图像,文本和录音。其中收录了上个世纪七十年代中国相关图像。 拉长号 通过拉缩浏览器吹长号(听起来也不太像哈哈哈) Web历史 一个有趣的网站简单介绍Web重要历史 首发微信公众号:ITPostman

优秀的个人博客,低调大师

IT人员表示‘我说了算’

对于微软的容器产品,用户的态度如何呢?根据市场调查,到目前为止,微软企业用户更倾向于在内部环境中或者自管理的云基础架构中使用Windows Server 2016中的容器功能,而不是单独的Azure容器服务——尽管Azure容器目前已经可用,而Windows Server容器离上市还有几个月的时间。 Bala Subra是一家大型出版公司的.NET架构师,他对Windows Server容器已经进行了概念验证测试,他表示“我们需要一个适用于多种平台的解决方案,不只是Linux系统。” 虽然该公司已经使用了Linux容器,但是尚未用于生产环境,Subra表示自己有耐心等到Windows Server 2016正式上市,届时将开始部署Windows容器。 这在很大程度上是因为微软用户需要一个由微软进行开发并提供支持的本地产品,鉴于微软的用户量,这种需求并不罕见。另外也有一些组织想提前尝试在内部的裸金属上运行Windows Server容器,而不是直接交付给公共云中的虚拟机。 Urban Science是一家专门从事汽车行业的数据分析公司,该公司的配置管理员Marc Priolo说:“为了让成本优势转移到容器技术,我们必须考虑重组我们的服务器基础设施。当你部署容器时,会消除很多虚拟操作系统的开销。” 虽然VM可以持续运行十几个容器,但是裸机服务器可以运行成千上百个容器。而且裸机是网络级规模企业的最爱,451 Research的分析师Jay Lyman表示。 Azure容器服务目前可用,但仍不完整在云环境中,Azure Container Service(ACS)是建立在Hyper-V容器上,并且在4月19日开始向用户提供大量集群管理和编配等选项。 但这里的选择是一把双刃剑,它同时也意味着用户仍然需要自己集成持续整合、交付工具以及日志记录和监控。Azure容器没有本地Docker注册中心,使用了Docker版注册表,Azure Compute产品经理Boris Scholl表示。 “我们绝对会自己运行Docker,并且会充分利用嵌入到Windows Server 2016中的各种功能,”DevOps分析师Chris Riley表示他正在考虑使用容器。Riley同时也是TechTarget网站的投稿者以及Azure网站客户,他说“在处理现有的应用程序上,ACS存在一定的复杂性——对于我们来说,部署Windows Server 2016中的容器会更简单一些。” Window容器还需合作伙伴趁着Docker热潮,微软已经提供了多款具体应用工具,但是在容器方面的合作伙伴队伍还需壮大。 例如,ContainerX的公司领导人曾在VMware工作,最近他表示支持Windows Server 2016容器、基础设施分享以及多组合功能,并希望这些功能与Windows容器包分开打包。 WinDocks公司提供了基于SQL Server的容器虚拟化平台,还有DH2i都是微软Windows Server容器的强劲竞争对手。 手机费用支付公司Ding正在对WinDocks的产品进行评估,计划用在其软件开发管道,对容器中运行的SQL Server实例副本进行代码测试。 “创建测试及开发SQL Server是个相当漫长的过程。根据VM大小,可能需要花10分钟到两个小时。”Ding的数据库管理员Andrew Pruski说。 他说,通过测试WinDocks产品,SQL Server复制只花了90秒。本文转自d1net(转载)

优秀的个人博客,低调大师

面对Kafka消费不给力,如何轻松解决呢?

我是架构精进之路,点击上方“关注”,坚持每天为你分享技术干货,私信我回复“01”,送你一份程序员成长进阶大礼包。 一、背景 随着目前业务复杂度的增加,项目中经常需要有大量的跨系统异步任务需要处理。 在这种情况下, 我们选择了kafka作为了我们的消息中间件, 选择kafka主要基于以下几点: 支持分布式,避免单点问题 技术方案成熟,公司内部有上线项目 性能优异,能够持久化消息 通常情况下,我们会采取轮询或者随机的方式,通过Kafka的producer向Kafka集群生产数据,来尽可能保证Kafk分区之间的数据是均匀分布的。 在分区数据均匀分布的前提下,如果我们针对要处理的topic数据量等因素,设计出合理的Kafka分区数量。对于一些实时任务,比如Spark Streaming/Structured-Streaming、Flink和Kafka集成的应用,消费端不存在长时间"挂掉"的情况即数据一直在持续被消费,那么一般不会产生Kafka数据积压的情况。 但是这些都是有前提的,当一些意外或者不合理的分区数设置情况的发生,积压问题就不可避免。 二、遇到的问题及剖析 问题描述 第一次发现问题是在联调的时候,任务执行方发现consumer会打印出错误日志,重复消费,并且陷入循环。 当时很快定位到问题: 由于Consumer长时间没有发送心跳包,导致触发Rebalance操作, Consumer被踢下线了 。 问题剖析 对于这个问题,需要详细讲述一下Kafka Consumer相关的机制。 Kafka为了保证Partition分配的高效率, 使用了如下机制: 所有的Consumer都要和Coordinator连接; Coordinator选出一个Consumer作为Leader来分配Partition; Leader分配完以后通知Coordinator, 由Coordinator来通知给其他Consumer; 如果一个consumer不能工作了,Coordinator会触发Rebalance机制,重新分配Partition。 Coordinator判定一个Consumer不能工作,底层依靠的就是Heartbeat机制。Consumer的配置里面有一项是Session_timeout,如果Heartbeat不能在Session_timeout时间内发出一次请求,Coordinator就会触发一次Rebalance操作,重新分配Partition。 三、消息积压典型场景及解决方案 Kafka消息积压的典型场景主要包括以下三种: 1.消费任务宕机 问题描述 比如,我们写的实时应用因为某种原因挂掉了,并且这个任务没有被监控程序监控发现通知相关负责人,负责人又没有写自动拉起任务的脚本进行重启。 那么在我们重新启动这个实时应用进行消费之前,这段时间的消息就会被滞后处理,如果数据量很大,可就不是简单重启应用直接消费就能解决的。 解决方案 1)任务重新启动后直接消费最新的消息,对于"滞后"的历史数据采用离线程序进行"补漏"。 此外,建议将任务纳入监控体系,当任务出现问题时,及时通知相关负责人处理。当然任务重启脚本也是要有的,还要求实时框架异常处理能力要强,避免数据不规范导致的不能重新拉起任务。 2)任务启动从上次提交offset处开始消费处理 如果积压的数据量很大,需要增加任务的处理能力,比如增加资源,让任务能尽可能地快速消费处理,并赶上消费最新的消息 2.Kafka分区不合理(太少)导致消费能力不足 问题描述 Kafka单分区生产消息的速度qps通常很高,如果消费者因为某些原因(比如受业务逻辑复杂度影响,消费时间会有所不同),就会出现消费滞后的情况。 此外,Kafka分区数是Kafka并行度调优的最小单元,如果Kafka分区数设置的太少,会影响Kafka consumer消费的吞吐量。 解决方案 如果数据量很大,合理的增加Kafka分区数是关键。如果利用的是Spark流和Kafka direct approach方式,也可以对KafkaRDD进行repartition重分区,增加并行度处理。 3.Kafka消息的key不均匀,导致分区间数据不均衡 问题描述 在使用Kafka producer消息时,可以为消息指定key,但是要求key要均匀,否则会出现Kafka分区间数据不均衡。 解决方案 可以在Kafka producer处,给key加随机后缀,使其均衡。 四、额外需要关注的点 额外需要关注的点:在消费速度不一致的情况下,offset提交处理问题。 Consumer的offset提交是按照TopicPartition作为提交单元的。在Consumer消费过程中,可能会发生Reblance事件,如果当前Consumer分配到的Partition数量大于1个,可能这个Partition会被分配给其他的Consumer。在这个过程中,Consumer已经消费了该条数据,那么在提交Offset的时候,就会遇到CommitOffsetError,因为这个Partition已经不属于自己了。 由于我们使用poll函数一次性返回多个数据,加上在消费速度不均衡的情况下offset管理的问题。所以我们必须要手动管理offset, 保存我们上次提交offset的时间和未提交offset的数量,一旦其中某一个达到阈值,就真正地提交offset。 - END - 作者:架构精进之路,专注软件架构研究,技术学习与个人成长,关注并私信我回复“01”,送你一份程序员成长进阶大礼包。 往期热文推荐: 福利!手把手教你做好一场技术分享 开放式API安全防护的七大原则 如何成为一名优秀的技术Leader? 「技术架构精进」专注架构研究,技术分享 Thanks for reading! 本文分享自微信公众号 - 架构精进之路(jiagou_jingjin)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

产业化:勒索软件集体发力RaaS

近半年来,RaaS(勒索软件即服务)正在成为勒索软件的一个热门趋势。大量勒索软件团伙正在积极拓展RaaS业务,寻找“加盟机构”,分工协作并分享勒索软件攻击获得的利润。 很多人认为RaaS就是一种勒索软件租赁服务,攻击实施者会付费使用RaaS团伙提供的恶意软件。事实上,租赁服务只是RaaS的冰山一角,而且以这种方式出租或出售的通常都是质量最差的勒索软件。 比较著名的勒索软件团伙通常会采用私人会员计划,外围攻击者可以在会员论坛中提交简历以申请会员资格。 对于被接纳的会员,每次成功的勒索软件攻击后,可以分得赎金的70%-80%, 勒索软件开发人员则可获得20%至30%的佣金。(编者:类似REvil这样的“大牌”勒索软件团伙甚至会在会员论坛的加密货币钱包地址中打入高达上百万美元的“保证金”) REvil的私人会员计划条款 为了对受害者的系统进行加密,会员组织会雇佣黑客提供服务,这些黑客可以访问目标网络、获得域管理员特权、收集并窃取文件,然后将获得访问所需的所有信息传递给会员组织并对其进行加密。 每次攻击后,赎金利润通常会平均分配给RaaS小组,入侵网络的黑客和勒索软件会员。 勒索软件RaaS的三大集团 目前,有超过二十个活跃的RaaS团伙帮派正在积极寻求将勒索攻击外包给勒索软件“加盟”公司。 正如威胁情报公司Intel 471在近日发布的一份报告中所言,“一些知名的勒索软件团伙结成了紧密而秘密的犯罪圈子,通过直接和私密的通讯方式联系,外人难以觉察。” 根据过去一年中对勒索软件团伙的监测,Intel 471按照知名度和活跃时间长度,将勒索软件团伙分为三大集团(层级): 已经成为勒索软件代名词的主流团伙; 老树开新花,复活的变体; 具备“篡位”潜力的全新变体。 第一集团的勒索软件团伙都是在过去几年中成功获得数亿勒索赎金的组织。 他们中的绝大多数还使用了除加密数据外的其他勒索方法,例如从受害者的网络中窃取敏感信息,并威胁要泄漏这些信息。(编者:甚至有安全专家指出,企业删除泄露数据缴纳的勒索赎金有可能超过解密数据的赎金,成为勒索软件团伙的主要收入。) 第一集团的RaaS团伙包括: DopplePaymer(用于攻击Pemex、BretagneTélécom、纽卡斯尔大学、杜塞尔多夫大学)、Egregor(Crytek、Ubisoft、Barnes&Noble); Netwalker/Mailto(Equinix、UCSF、密歇根州立大学、收费小组); REvil/Sodinokibi(Travelex、纽约机场、德克萨斯州地方政府)。 Ryuk在排名中名列前茅,在去年,大约有三分之一的勒索软件攻击中检测到了其有效载荷。 Ryuk还因使用Trickbot、Emotet和BazarLoader感染媒介将其有效载荷作为多阶段攻击的一部分而闻名,可以轻松地进入目标网络。 此外,Ryuk的分支机构还长期对美国医疗保健系统发起大规模攻击,并要求巨额赎金支付,今年初已从一名受害者那里收割了3400万美元赎金。 第二集团(复活组)的RaaS组织在2020年逐渐发展为数量更多的会员制连锁组织,并参与了多起攻击。 属于第二集团的勒索软件包括:SunCrypt、Conti、Clop、Ragnar Locker、Pysa/Mespinoza、Avaddon、DarkSide(可能是来自REvil的一个分支)等等。 正如第一集团的勒索软件团伙一样,他们也将数据泄露勒索用作辅助勒索方法。 第三集团(新兴组)的RaaS团伙向会员分发全新开发的勒索软件,但是根据Intel 471的说法,“目前安全业界对于此类勒索软件的成功攻击、攻击数量、斩获赎金金额以及缓解成本知之甚少。” 第三集团勒索软件团伙包括Nemty、Wally、XINOF、Zeoticus、CVartek.u45、Muchlove、Rush、Lolkek、Gothmog和Exorcist。 其他活跃的RaaS团体 除了英特尔471关注的勒索软件团伙外,还有很多其他新兴的RaaS团队。 例如,Dharma是一款资深RaaS,自2017年以来就一直存在,不少业界人士认为它是Crysis的勒索软件的分支,后者于2016年开始运行。 Dharma不使用数据泄漏站点,也没有关于数据被盗的广泛报道。他们的会员收取的赎金从数千美元到数十万美元不等。 于2019年9月出现的LockBit是另一个备受瞩目的RaaS业务,针对私营企业,后来又被Microsoft观察到攻击医疗和关键服务。 值得注意的是,LockBit团伙与Maze联手创建了一个勒索卡特尔组织,在攻击过程中共享数据泄漏平台并交换战术和情报,大大提高了攻击效率。LockBit勒索软件参与者在获得对受害者网络的访问权限后,只需花费五分钟即可部署有效负载。 其他Intel 471报告中没有提及的勒索软件还包括:Ragnarok、CryLock、ProLock、Nefilim和Mount Locker,这些都是活跃的勒索软件,参与过近期的一些攻击。

优秀的个人博客,低调大师

ARM借力使力 AI布局正在稳妥推进

今年Arm宣布最新旗舰CPU——Cortex-A76,相比上一代在性能上实现了35%的提升,同时降低了40%的功耗,并在机器学习能力上提升了4倍。去年Arm发布的Cortex-A75针对AI和ML能力进行了特别优化,同时引入了TrustZone技术(芯片级安全技术)和DynamIQ big.LITTLE拓扑特性。据最新数据显示,截止2017年底基于Arm的芯片出货量已达1200亿片,约占整体市场四成份额。在连续创造惊人的数字之后,ARM的目光更为长远。嵌入式开发 Cortex-A76虽采用和前一代相同的v8.2指令集,但内建的微处理器架构则是从头开始研发,实现了诸多重大改进,包括解耦合分支预测与指令预取、译码宽度更大、更高的整数与向量与浮点运算单元等。同时,Cortex-A76是针对7nm工艺定制的全新架构,在搭配7nm工艺时主频可达到3.0GHz。 这一性能相当于PC端英特尔旗下的酷睿i5-7300,如果SoC厂商缓存设计得更好,其性能甚至可以媲美i7。联想到此前新一代高通骁龙1000版Windows 10ARM笔记本,表明Arm正着力染指PC市场,但能否借Cortex-A76挑战英特尔/AMD在PC领域的权威还待合作伙伴的力道以及生态的配合。同时Cortex-A76还意欲为智能手机带来笔记本级别的性能,过发挥比前一代产品高达4倍的机器学习性能,解决云端持续互动衍生出的延迟以及安全方面的问题。Cortex-A76可谓“身兼重任”。 此外,Arm还提供独特的POP技术。Ian Smythe提及,基于台积电16FFC的Cortex-A76 POP IP,可提供目前最佳性能;而对于那些寻求顶尖制程并锁定高端应用的客户,使用台积电7FF制程的Cortex-A76和Cortex-A55 POP IP将于2018年第四季度上市。Arm POP IP可加速产品的实现,缩短上市时间,并充分利用DynamIQ big.LITTLE的灵活性。 GPU可说是Arm未来要发展AI计算生态的主要角色,从第一代BiFrost架构开始,就已经针对AI计算所需要的各种场景,包含机器学习中的训练以及推理加速等进行优化。时间节点到了2018年中,Mali-G76新晋成为Arm最新旗舰GPU。 除在GPU领域精进之外,面向未来的8K视觉体验,Arm推出了最新的高端视频处理器(VPU)Mali-V76来占领先机。 随着相关方案陆续成熟,采用者也逐渐增加,Arm在今年2月推出Project Trillium,结合开发环境、算法与各大主流机器学习框架,布局从终端到云端所有AI应用开发生态。 而此次推出的无论是CPU还是GPU,在AI性能上均实现了大幅提升,表明Arm的AI布局亦在稳妥推进。

优秀的个人博客,低调大师

MaxCompute助力OSS支持EB级计算力

一、 MaxCompute是什么? 你的OSS数据是否作堆积在一旁沉睡已久,存储成本变为企业负担?你是否想唤醒沉睡的数据,驱动你的业务前行?MaxCompute可以帮助你高效且低成本的解决这些问题,通过对海量数据进行分析和计算来实现勾勒用户画像、提升营销转化、挖掘产品优化方向、预测业务发展等丰富的业务场景。 MaxCompute是一项提供快速、完全托管的EB级数据仓库解决方案的大数据计算服务,可以高效并经济的分析处理海量数据。作为阿里云大数据旗舰产品,MaxCompute的EB级别性能处理达到了全球领先性,被Forrester评为全球云端数据仓库领导者。同时,MaxCompute也是阿里巴巴内部大数据旗舰平台,阿里巴巴近99%的数据存储以及95%的计算能力都在这个平台上产生。 最近MaxCompute重磅推出了一项重要特性:OSS外表

优秀的个人博客,低调大师

变频升级变流,格兰仕空调再度给力

“电脑的显示器一抖,又跳闸了!郁闷!” 笔者一直为类似的问题而烦恼,就是每逢冬天最冷、夏天最热的时候,家里的空调、冰箱、热水器、电脑等电器就频繁出故障,有时候开启或关闭空调这些大型家电还会导致线路跳闸情况。 后来咨询了朋友,发现这是一种普遍现象,因为那个时间段基本上是用电高峰期,而一些家电的用电负荷又大,在开启或关闭时很容易造成短路、跳闸等现象。据朋友介绍,目前市场上的空调等家庭都采用的是普通变频技术,该技术采用冲击电流,容易引发电源电压大幅波动,从而导致家电故障和电路故障。 而根据最新消息,格兰仕与上海日立、日本东芝达成变频合作协议,将联手出击变频空调市场,打造升级变频空调,采用最新“变流技术”打造新型变频空调。上海日立是国内最早研发和大批量生产变频压缩机的企业,日本东芝半导体是专业研发和制造芯片的企业,格兰仕、日立和东芝的三方的强强合作,将整体推进变频空调技术的进步。 据透露,格兰仕这次与日立、东芝的合作规模将超过5亿,不仅是近期国内空调业最大规模的变频合作,还将实现空调核心技术的突破,从而开发出更加高效、节能与环保的新型变频空调。从此,家电中的空调将率先升级,不再因为用电负荷而给我们带来困扰了。 图:最新变流技术的格兰仕变频空调 变频变流 一般来说,普通变频空调的缺点是:启动能力差、噪音大、效率低、压缩机运动部件容易磨损、振动噪声较大以及冲击电流,从而引起电源电压大幅波动。而格兰仕空调采用的变流技术则在变频的技术上进行了优化,让空调更家省电、舒适和耐用,其变流技术的工作原理是:把电力变换的技术,运用在变频空调上,使变频空调技术具备4个方面的特性: 1、节能。由于格兰仕空调采用了直接变流,省略了整流环节,节能效果非常明显,能达到国家新一级能效标准; 2、静音。引进变流技术的格兰仕变频空调,能将空调的运转频率与压缩机转子的转速完美结合,有效减少共振,在同频率运转状态与传统变频空调相比噪音更低,甚至可以达到20分贝的超低静音; 3、平稳。格兰仕变频空调通过引进变流技术,可根据人员多寡、室内外温度变化等条件,进行1Hz超低频技术,实现恒温,让室内尽量保持舒适感。 4、智能。在“智能城市”以及“物联网”大背景下,格兰仕变频空调也具备智能功效,具有智能换气的功能,能在启动空调时杀死空气中流动的细菌,从而给生活在都市的人们一份更好的安全保障。 从变频向变流过渡,格兰仕大概用了10多年的研发,因此才掌握了该技术,同时也是目前空调领域最先进的技术。该项变频技术的革新,再加上与东芝、日立的合作,有望帮助格兰仕集团完成十二五期间成为白电三强、冲刺千亿的目标。 客服升级 除了在技术革新与厂商合作上进行突破外,格兰仕还对原有的客户服务进行了升级。近日,格兰仕空调宣称,对2011年3月8日~31日购买的格兰仕变频空调,实行2年整机包换、十大卓越服务的政策。此举打破了中国空调行业最长的包换时间纪录,格兰仕向用户及业界在昭示着自己过硬的品质。 以下是格兰仕空调十大卓越服务政策:“最快的服务速度、规范的服务形象、过硬的技术力量、标准的施工规范、透明的服务收费……”2年整机包换加上该十大服务政策,将可能引发空调业在“客户服务”层面的竞争与追赶。 总之,格兰仕空调技术的升级、服务的升级,将给空调同行带来压力,但最终受益的却是我们消费者本身。就拿今天和十年之前相比,人们所使用的产品、所享受的服务已经大大改观,而下一个十年又会不同,让我们共同期待一个更加舒适的生活、更加美好的未来。 本文转自于明51CTO博客,原文链接:http://blog.51cto.com/shayu/511089,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册