本博客系列是学习并发编程过程中的记录总结.由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅. 并发编程系列博客传送门 随机数 随机数在科学研究与工程实际中有着极其重要的应用! 简单来说,随机数就是一个数列,这个数列可能满足一定的概率分布,又获取其满足的分布并不为我们所知. 数学方法产生随机数应该称之为"伪随机数",只有使用物理方法才能得到真正的随机数!因此我们使用计算机产生的随机数都是"伪随机数".那么计算机到底是怎么产生随机数的呢?这时就…
Random可以说是每个开发都知道,而且都用的很6的类,如果你说,你没有用过Random,也不知道Random是什么鬼,那么你也不会来到这个技术类型的社区,也看不到我的博客了.但并不是每个人都知道Random的原理,知道Random在高并发下的缺陷的人应该更少.这篇博客,我就来分析下Random类在并发下的缺陷以及JUC对其的优化. Random的原理及缺陷 public static void main(String[] args) { Random random = new Random()…
.net的页面在大并发下偶尔出现503错误 我们开发了一个回调页面,由一个工具负责调用,由于压力非常大,回调页面通过6台服务器负载均衡的: 最近业务系统又再次扩容,回调页面压力成倍增加,在高峰时间段偶尔出现了503错误. 拿到这个问题首先对系统的各个环节进行了分析,工具调用页面,首先到F5负载均衡服务器,再到页面服务器: 1.F5负载均衡服务器的连接数,通过咨询对应的厂家,没有达到预警上限: 2.那就是页面服务器的原因了: 1)是否是连接数达到了上限,win2008以前的版本,对半开连接数是有限…
Atitit 提升开发进度大方法--高频功能与步骤的优化 类似性能优化 1. 通用功能又可以组合成crud模块1 1.1. 查询(包括步骤,发送查询dsl,通讯返回结果,绑定到表格控件)2 1.2. 多条件查询(条件表达式组合,发送查询dsl)2 1.3. 翻页2 1.4. 新增,form序列化)2 1.5. 编辑(查询dsl ,form绑定)2 1.6. 删除2 1.7. 导出excel2 1.8. 数据同步(监听器,数据融合merge,savepoint)2 2. 高频商业功能3 2.1.…
Atitit 提升进度的大原则与方法  高层方法  attilax总结 生产力的提升点 1.1. 管理,管理的发展发展非常缓慢,1 1.2. 方法论(前后分离,dsl等)1 1.3. 工具( 工具链 甚至包括类库等)1 1.4. 积累(类库,框架,开发平台)1 1.5. 参考资料1 1.1. 管理,管理的发展发展非常缓慢, 期间当然出现了一些东西,例如...等等,但是远没有好上1000倍 事实上,近几十年来的努力主要体现在工具以及累计沉淀等方面 1.2. 方法论(前后分离,dsl等) 抽象级别越…
php调用redis进去读写操作,大并发下会出现:读取key1,没有内容则写入内容,但是大并发下会出现同时多个php进程写入的情况,这个时候需要加一个锁,即获取锁的php进程有权限写. $lock_key = 'LOCK_PREFIX' . $redis_key; $is_lock = $redis->setnx($lock_key, 1); // 加锁 if($is_lock == true){ // 获取锁权限 $redis->setex($redis_key, $expire, $dat…
转自:http://blog.csdn.net/u010954257/article/details/54178160 最近在做一个大并发服务的测试(目前测到86万,当然有大量长连接,每天打的日志高到170多g,不打算继续测了),业务系统为反向代理ATS,服务的内容为动态域名,大部分的url很长,不过打开后的值只是0或1这样的标记. 当服务器在几万并发时,一般不需要考虑TCP连接消耗内存的问题,但当服务器承载几十万并发时,会暴漏出各种的问题,因此不得不考虑TCP连接对内存资源的消耗,当然跑到86…
php调用redis进去读写操作,大并发下会出现:读取key1,没有内容则写入内容,但是大并发下会出现同时多个php进程写入的情况,这个时候需要加一个锁,即获取锁的php进程有权限写. $lock_key = 'LOCK_PREFIX' . $redis_key; $is_lock = $redis->setnx($lock_key, 1); // 加锁 if($is_lock == true){ // 获取锁权限 $redis->setex($redis_key, $expire, $dat…
利用job提升马哈鱼数据血缘分析效率 一.Job基本知识 前面文章中已介绍马哈鱼的基本功能,其中一个是job,job其实是一个任务集合处理的概念,就是让用户通过job,可以一次递交所有需要处理的 SQL,SQLFlow处理这些 SQL,把所有的数据血缘都分析出来.从用户角度,job包含job list和The Latest Job.其中,job list是当前用户所有的job.而The Latest Job是所有用户job中最新的job列表.本文向您重点介绍job的作用及用法. job是马哈鱼收…
799 java里有伪随机型和安全型两种随机数生成器,伪随机生成器根据特定公式将seed转换成新的伪随机数据的一部分,安全随机生成器在底层依赖到操作系统提供的随机事件来生成数据. 安全随机生成器 需要生成加密性强的随机数据的时候才用它 生成速度慢 如果需要生成大量的随机数据,可能会产生阻塞需要等待外部中断事件 而伪随机生成器,只依赖于"seed"的初始值,如果给生成算法提供相同的seed,可以得到一样的伪随机序列.一般情况下,由于它是计算密集型的(不依赖于任何IO设备),因此生成速度更…
Java 7 has introduced a new random number generator - ThreadLocalRandom Normally to generate Random numbers, we either do Create an instance of java.util.Random OR Math.random() - which internally creates an instance of java.util.Random on first invo…
本月初微软官宣.NET 6 的RC1即将在11月正式发布,这意味着.NET6正式版跟我们见面的时间又近了一步.在之前的.NET6预览版本中,微软加入了大量新功能特性,而在最终版本中将不再额外加入新的内容,只对现在的内容进行进一步性能优化,以求系统更加稳定. 微软官方提供了.NET主题相关总览 从年初发布的预览1,到8月发布的预览7,许多新功能陆续进入大家的视线. 其中最受期待的,莫过于2020年5月微软推出的 .NET跨平台 UI 框架--MAUI(.NET Multi-platform App…
 To support over 500k users, you *need* - A 64 bits hardware/kernel (AMD64, Opterons) - At least 8GB of ram - A recent linux kernel (2.6.x) About tuning, I prefer to not fully disclose them because servers are targets of many attacks, so it's better …
我们开发了一个回调页面,由一个工具负责调用,由于压力非常大,回调页面通过6台服务器负载均衡的: 最近业务系统又再次扩容,回调页面压力成倍增加,在高峰时间段偶尔出现了503错误. 拿到这个问题首先对系统的各个环节进行了分析,工具调用页面,首先到F5负载均衡服务器,再到页面服务器: 1.F5负载均衡服务器的连接数,通过咨询对应的厂家,没有达到预警上限: 2.那就是页面服务器的原因了: 1)是否是连接数达到了上限,win2008以前的版本,对半开连接数是有限制的,但是从win7.win vista.w…
我们在处理大数据表的时候经常会感觉的处理速度不够快,效率不够高,那么今天下面我就来简单实现下PLSQL的多线程编程处理数据: 我模拟一个简单的场景,把某一张表中的数据(当然这张表的数据非常大)同步到目的表中去 1.需要同步的数据表结构:WSFMDJ -- Create table create table WSFMDJ ( ) not null, reghospital ), hospitalid ), regname ), regaac002 ), regmz ), regblood ), r…
最近因为要开发大数据量网站,特作比较. Linq to SQL 查询 记录数:399997Linq to SQL 查询 Milliseconds:1910视图查询 记录数:399997视图查询 Milliseconds:3435Entity Framework 查询 记录数:400000Entity Framework 查询 Milliseconds:4049企业库存储过程 to DataReader 记录数:399997企业库存储过程 to DataReader Milliseconds:32…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication9 { class Program { static void Main(string[] args) { // sql如下,我把它翻译成代码,加深理解 // SELECT MAX(id)FROM sys_men…
如何提升scrapy爬取数据的效率:只需要将如下五个步骤配置在配置文件中即可 增加并发:默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100. 降低日志级别:在运行scrapy时,会有大量日志信息的输出,为了减少CPU的使用率.可以设置log输出信息为INFO或者ERROR即可.在配置文件中编写:LOG_LEVEL = 'INFO' 禁止cookie:如果不是真的需要cooki…
sql查询重复记录,使用: select * from dimappnamenew as appn where id in (   select id   from dimappnamenew group by packagename,storename,app_name having count(*)>1 ) id是表的主键,三个属性映射后可以唯一对应id这个列,所以用id就行了. 在做其他查询时,认真分析表内容,如果查询多个字段可以唯一对应一个字段,直接用这个字段作为外部对比,会加快效率.是…
Yoinkmac是一个工具类应用程序,用于在苹果电脑上进行临时文档暂存,就像一个“中转站”将文件从一个窗口轻松移动到另一个窗口.类似的软件包括苹果电脑上的Dropshelf和Unclutter,但相比之下,Yoink 更专注于「文档储存」这一要求.因为专注,看起来简单的yo ink实际上有很多细小的功能,为了让更多人更好使用 Yoink,我们将这些技巧整理编译出来,其中很可能就有可以帮你大大提高日常文件处理效率的方法. 技巧 1. 复制和移动操作 就像在 Finder 中一样,你可以将文件从 Y…
摘要:云原生大势,深度解读华为云四大容器解决方案如何加速技术产业融合. 云原生,可能是这两年云服务领域最火的词. 相较于传统的应用架构,云原生构建应用简便快捷,部署应用轻松自如.运行应用按需伸缩,是企业上云之后业务开发转型的第一选择. 为此,华为云推出了高可靠.高性能,开放.易用的云原生技术平台Vessel,并且基于Vessel构建了第二代裸金属容器.混合云容器.容器批量计算.边缘容器四大解决方案. 据IDC发布的<PRC SDC Software Market Overview, 2019H2…
Math类 //绝对值值运算: Math.abs(18.999); //返回19.999这个数的绝对值 Math.abs(-12.58); // 返回-12.58这个数的绝对值,为12.58 //取值运算: Math.signum(x); //如果x大于0则返回1.0,小于0则返回-1.0,等于0则返回0 //取整运算: Math.ceil(-13.56); //返回最近的且大于这个数的整数, 为14.0 Math.floor(-13.56); //返回最近的且小于这个数的整数, 为13.0 M…
Random和ThreadLocalRandom类均用于生成伪随机数. Random的构造函数: Random()     默认以系统当前时间为种子,相当于Random(System.currentTimeMillis()) Random(long  seed) 常用方法: nextXxx()    生成对应类型的伪随机数. 示例: Random  random=new Random(); int x=random.nextInt();     //生成一个int范围内的伪随机数 x=rando…
原文链接:https://www.jianshu.com/p/9c2198586f9b 2.2. 并发包中ThreadLocalRandom类原理剖析 ThreadLocalRandom类是JDK7在JUC包下新增的随机数生成器,它解决了Random类在多线程下多个线程竞争内部唯一的原子性种子变量而导致大量线程自旋重试的不足.本节首先讲解下Random类的实现原理已经它在多线程下使用的局限性,然后引入ThreadLocalRandom类,通过讲解ThreadLocalRandom的实现原理来说明…
JUC源码分析-其它工具类(一)ThreadLocalRandom ThreadLocalRandom 是 JDK7 在 JUC 包下新增的随机数生成器,它解决了 Random 在多线程下多个线程竞争内部唯一的原子性种子变量而导致大量线程自旋重试的不足.需要注意的是 Random 本身是线程安全的.同时 Random 实例不是安全可靠的加密,可以使用 java.security.SecureRandom 来提供一个可靠的加密. 1. 随机数算法介绍 常用的随机数算法有两种:同余法(Congrue…
100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年4月16日13:38:49 摘要:本文基于PayPal高级工程总监Anil Madan写的大数据文章,其中涵盖100篇大数据的论文,涵盖大数据技术栈(数据存储层.键值存储.面向列的存储.流式.交互式.实时系统.工具.库等),全部读懂你将会是大数据的顶级高手.作者通过引用Anil Madan原文和CS…
返回目录 并行是.net4.5主打的技术,同时被封装到了System.Threading.Tasks命名空间下,对外提供了静态类Parallel,我们可以直接使用它的静态方法,它可以并行一个委托数组,或者一个IEnumerable的迭代,而今天主要通过一个访问数据库的代码,来说说并发Parallel对整个程序的提升是那么大,我们主要从数据库连接数和程序运行时间上就可以很清晰的看到效果. 简单的测试代码 [TestMethod] public void Read() { Stopwatch sw…
整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求.那么表结构也会经常修改,加字段,加索引.在线直接在生产环境的表中修改表结构,对用户使用网站是有影响. 以前我一直为这个问题头痛.当然那个时候不需要我来考虑,虽然我们没专门的dba,他们数据量比我们更大,那这种问题也会存在.所以我很想看看业界是怎么做的,我想寻找有没有更高级的方案,呵呵,让我觉得每次开发一个新功能,我在线加字段都比较纠结.后来只知道,不清楚在什么时候,无意中看到一个资料介绍online-schema-change这个工具,于是…
1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位,为元素 x "腾位置",最后将 k 对应的元素值赋为 x ,一般情况下,插入排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1). /** @param int[] 未排序数组 @return int[] 排完序数组 */ public int[…
一.函数调用优化(空间跨度,避免访问内存) 1.大数据求和,使用sum a = range(100000) %timeit -n 10 sum(a) 10 loops, best of 3: 3.15 ms per loop %%timeit ...: s = 0 ...: for i in a: ...: s += i ...: 100 loops, best of 3: 6.93 ms per loop 2.小数据求和,避免使用sum %timeit -n 1000 s = a + b +…