- 浏览: 11315 次
最新评论
文章列表
通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量。而度量一个程序的执行时间通常有两种方法。
一、事后统计的方法
这种方法可行,但不是一个好的方法 ...
对于一个大型网站,主要有以下几个特征:
支撑海量数据
非常高的访问量
我们常见的大型网站,如百度、淘宝、京东等,都是一个分布式系统。这么复杂的系统也不是一天建成的,每个系统都经历了漫长的演变过程。
架构演变
在大型网站中,其最核心的功能就是
对于Java开发人员来说,了解Java内存模型是必不可少的知识。
JVM内存模型
在生产环境上一般会配置JVM参数以充分利用硬件资源,不管是在云主机或容器里面,也就是在启动应用时添加下面的某些配置:
-XmsSetting —初始堆大小
-XmxSetting —最大堆大小
-XX:NewSizeSetting —新一代堆大小
-XX:MaxNewSizeSetting —最大新一代堆大小
-XX:MaxPermGenSetting —永久生成的最大大小
-XX:SurvivorRatioSetting —新的堆大小比率(例如,如果Young Gen大小为1 ...
摘要: Force.com是如今正在使用的优秀的按需应用程序开发平台,支持47000 +个组织。个别企业和商业软件即服务(SaaS)供应商相信该平台可以提供强大、可靠和网络规模的应用。为了满足其庞大的用户人口要求,Force.com以元数据驱动的软件架构为基础,构建多租户应用。本文阐述了这项专利技术,它使Force.com平台对于任何类型的应用来说都是快速的、可扩展的和安全的。
引言
历史表明,每一个如此频繁和增量的技术上的进步,以及商业模式的变化,造就了软件应用方式的重大转变,包括应用程序的设计、建造,并交付最终用户。个人电脑、计算机网络和图形用户界面(UI)的发明,产生了客户端 ...
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查 ...
本文是站在小白的角度去讨论布隆过滤器,如果你是科班出身,或者比较聪明,又或者真正想完全搞懂布隆过滤器的可以移步。
不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,仿佛身在互联网,做 ...
一致性Hash算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot Spot)问题,初衷和CARP十分相似。一致性Hash修正了CARP使用的简单哈希算法带来的问题,使得分布式哈 ...
CPU利用率:显示的是程序在运行期间实时占用的CPU百分比
CPU负载:显示的是一段时间内正在使用和等待使用CPU的平均任务数。CPU利用率高,并不意味着负载就一定大。举例来说:如果我有一个程序它需要一直使用cpu的运算功能,那么此时cpu的使用率可能达到100%,但是cpu的工作负载则是趋近于“1”,因为cpu仅负责一个工作嘛!如果同时执行这样的程序两个呢?cpu的使用率还是100%,但是工作负载则变成2了。所以也就是说,当cpu的工作负载越大,代表cpu必须要在不同的工作之间进行频繁的工作切换。
通过下面的几个部分的了解,可以一步一步的找出Load Average在压力测 ...
目录
定义(Definitions)
数据的设计与抽象化(Data Design and Abstraction)
HTTP动词 (Verbs)
版本(Versioning)
分析 (Analytics)
API根路径 (API Root URL)
路径 (Endpoint)
信息过滤 (Filtering)
状态码 (Status Codes)
文档返回值 (Expected Return Documents)
身份认证 (Authentication)
内容形式 (Content Type)
超媒体 (Hypermedia APIs)
文档 (Docum ...
OAuth2的学习,我也是从阮一峰老师的博客中开始的:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 下文中以“该博客”指代阮老师的博客。 但,阮一峰老师的博客似乎忽略了很多细节。 OAuth2的实际应用中,最常见的就是“授权码模式”了。 微博是这种模式,微信也是这种模式。
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则。
在 ...
当redis被用作缓存时,有时我们希望了解key的大小分布,或者想知道哪些key占的空间比较大。本文提供了几种方法。
一. bigKeys
这是redis-cli自带的一个命令。对整个redis进行扫描,寻找较大的key。例:
redis-cli -h b.redis -p 1959 --bigkeys
输出:
# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 se ...
一、假定失效的设计(Design for Failure) 1、假定任何环节都有可能出问题,然后倒推依次设计 2、避免单点故障(single point of failure) 3、目标:应用能够连续工作,服务一直可用 4、典型实践,充分考虑到多可用区AZ(availability zone)
二、松耦合的设计(Decoupled) 1、从架构层面降低功能模块的耦合程度 2、充分考虑到服务模块接口的设计,以及异步模式 3、目标:缩小单个故障的失效域,提高扩展性和容错能力 4、典型实践:面向服务的模块设计,通过消息队列解耦业务模块
三、弹性(El ...
zz:https://blog.csdn.net/wufaliang003/article/details/80742978
redis info信息详解
一、如何查看Redis性能
info命令输出的数据可以分为10个分类,分别是:
server,clients,memory,persistence,stats,replication,cpu,commandstats,cluster,keyspace
为了快速定位并解决性能问题,这里选择5个关键性的数据指标,它包含了大多数人 ...