引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借鉴. 本文将尝试由浅入深的方式表述大文件拆分的问题及不同解决方案,给出的方案不一定是最优解,也并非线上环境论证过的靠谱方式,目的只是在于通过该问题融会贯通io.多线程等基础知识理论.生产环境请慎用. 本文不会逐行讲解代码实现,而注重在方案设计及思路探讨上,但会在文末附上源码demo git地址. 问…
引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借鉴. 本文将尝试由浅入深的方式表述大文件拆分的问题及不同解决方案,给出的方案不一定是最优解,也并非线上环境论证过的靠谱方式,目的只是在于通过该问题融会贯通io.多线程等基础知识理论.生产环境请慎用. 本文不会逐行讲解代码实现,而注重在方案设计及思路探讨上,但会在文末附上源码demo git地址. 问…
[声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3985353.html).   [系列文章] 通用查询实现方案(可用于DDD)[附源码] -- 简介 通用查询实现方案(可用于DDD)[附源码] -- 设计思路 通用查询实现方案(可用于DDD)[附源码] -- 代码解读   [前言] 最近一直在关注和学习DDD,园子里大牛们的博文也看了不少,如dax.net.netfocus.老赵.田园里的蟋蟀.深蓝医生.冰麟轻武,不一一列举,感谢你们的无私…
原文:通用查询实现方案(可用于DDD)[附源码] -- 简介 [声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3985353.html).   [系列文章] 通用查询实现方案(可用于DDD)[附源码] -- 简介 通用查询实现方案(可用于DDD)[附源码] -- 设计思路 通用查询实现方案(可用于DDD)[附源码] -- 代码解读   [前言] 最近一直在关注和学习DDD,园子里大牛们的博文也看了不少,如dax.net.netfocus.老赵…
[声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3988592.html).   [系列文章] 通用查询实现方案(可用于DDD)[附源码] -- 简介 通用查询实现方案(可用于DDD)[附源码] -- 设计思路 通用查询实现方案(可用于DDD)[附源码] -- 代码解读   [前言] 在上一篇博文中,我向大家简单介绍了Xant.Querier通用查询,并分享了项目源码.这一篇继续给大家分享我的设计思路,也为了日后自己翻看.   [如何表示最基…
原文:通用查询实现方案(可用于DDD)[附源码] -- 设计思路 [声明] 写作不易,转载请注明出处(http://www.cnblogs.com/wiseant/p/3988592.html).   [系列文章] 通用查询实现方案(可用于DDD)[附源码] -- 简介 通用查询实现方案(可用于DDD)[附源码] -- 设计思路 通用查询实现方案(可用于DDD)[附源码] -- 代码解读   [前言] 在上一篇博文中,我向大家简单介绍了Xant.Querier通用查询,并分享了项目源码.这一篇继…
在使用EF的过程中,导航属性的lazy load机制,能够减少对数据库的不必要的访问.只有当你使用到导航属性的时候,才会访问数据库.但是这个只是对于单个实体而言,而不适用于显示列表数据的情况. 这篇文章介绍的是,使用Lazy<T>来提高显示列表页面的效率. 这里是相关的源代码 PerformanceTest.zip 阅读目录: 一.问题的描述 二.数据表和EF实体介绍 三.lazy load的性能 四.使用StudentExtensionRepository来提高效率 五.进一步改进,使用St…
结合最近Disruptor的学习,和之前一直思考解决的大文件拆分问题,想到是否可以使用Disruptor作为生产者/消费者传递数据的通道呢?借助其高效的传递,理论上应当可以提升性能.此文便是此想法的落地实现. 问题描述 将大文件按照指定大小拆分为若干小文件.具体可参考:大文件拆分方案的java实践(附源码). 方案设计 设计简图 如下: 核心组件 FileReadTask —— Disruptor的生产者线程,负责读取源文件,: Disruptor —— FileReadTask和FileLin…
java大文件拆分工具(过滤掉表头) import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class SplitTools { public static void main(String[] args) throws IOException { /…
项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.html 02:德国-德累斯顿市:http://test.sharegis.cn/mapbox/html/6germany.html 1.什么是sprite文件 sprite 文件主要是将一堆小图生成一种大图的方法,并且将每张小图的位置信息保存下来,方便读取.在网络请求中会减少请求的数量,mapbox借…