精华内容
下载资源
问答
  • 并行开发

    2016-11-17 17:16:03
    http://www.cnblogs.com/huangxincheng/category/368987.html
    http://www.cnblogs.com/huangxincheng/category/368987.html
    展开全文
  • .NET并行开发

    2016-03-25 17:15:37
    并行开发一直是程序员在开发项目中遇到的一道坎,但为了迎合硬件的升级,面对高端多核的处理器,并行编程势在必行。在.NET平台下的开发支持并行模式,下面用一个实际项目说明并行的高效率和神奇之处。 开发中引用...

        并行开发一直是程序员在开发项目中遇到的一道坎,但为了迎合硬件的升级,面对高端多核的处理器,并行编程势在必行。在.NET平台下的开发支持并行模式,下面用一个实际项目说明并行的高效率和神奇之处。

    开发中引用命名空间:

    using System.Threading;
    using System.Threading.Tasks;

    实际核心代码:

    <span style="color:#000000;"> Parallel.For(0, dw_count, (y) =>
                {
                    dwmess[y] = new DwObject();
                    dwmess[y].post( year,c_yhdw,sql_sum_bnwc, sql_xmmc_part2, sql_sum_klwc, sql_xmmc, c_xmmxf, c_yhjb,  c_ybtime, y, sql_xmmc_count);
                    dwmess[y].dws(arry[y]);          
                });</span>
        对于数据冲突和共享,可以通过对象数组解决。在并行程序的处理上,需要把原来串行的子公司变成一个一个类的对象,让所有的类对象一起并行运行就达到提高响应速率的目的了。

        在优化中国铁建企业经营管理系统时,遇到一个迫切需要解决的问题.就是报表处理响应时间的问题,在系统最初数据较少,导出报表响应时间较快。但是随着数据的不断扩充,就一个分局的数据导出(大概600条)也需要5分钟左右,当然这个和电脑的配置相关。若是总股份公司的项目报表导出(6000条左右),那个时间在普通的电脑上根本就是漫长的等待。于此,在中国铁建股份公司的高端配置服务器上导出的时间也需要很久。系统在报表处理这块就需要优化,我的解决方案就是并行。

        由于总公司的报表是由一个个分局(子公司)的报表合成的,原来的编程是根据程序的串行原则运行,就是完成一个子公司的报表后,才能继续进行下一个子公司的报表操作。总公司一共有大概50个左右的分局和项目指挥部,这样就严重的增长了报表生产导出的时间。利用并行,就是把原来的子公司让他们在几乎(这个需要看看.NET并行的运行原则,他们在并行时还是有很小的时间间隔)同一时间处理报表,开始运行。把原来需要50次左右的时间段变为一次(所需时间最慢开始,最后结束的那次)。这样就大大的加快了报表的处理速度。但是并行并不是很好控制,我测试,探索了很久才解决数据共享,数据冲突的问题。

        当然,并行开发需要利用程序调用系统的多核处理器,这样在cpu的资源占用上特别的高,我的项目在报表导出时基本是cpu占用是100%。以空间换取时间这是必须要接受的。不过,在真正的多核高端服务器的硬件上,结合并行程序的改良,总公司的报表导出时间问题终于得到解决了。

        以下有一些过程截图,值得一说的是报表生成时间的过程跟踪截图,它基本反映了并行程序在运行过程中的记录。

     图1 总股份公司的报表导出时间跟踪

    csdn故障 

     图2 一个子公司的报表导出时间跟踪

    csdn故障

    图3 报表导出节目展示

    csdn故障

    图4 导出Excel展示

    csdn故障

    展开全文
  • SVN 并行开发项目管理

    千次阅读 2017-06-15 09:28:13
    SVN 并行开发项目管理 SVN 分散式开发

    SVN 并行开发项目管理

    并行开发项目管理 结构示意图

    并行开发

    约束说明

    1. 主干不参与开发。

    主干永远是稳定的,也只有经过测试的内容,才会合入主干

    2. 分支定位

    按项目发布时间和要求的功能模块定义。不同分支的最大区别是功能上线的时间点。根据上线周期划分功能,拆分到不同分支

    3. 分支独立

    • 分支不再分branch,tag,分支上开发即测试(开发人员自行测试,任务重时可联系测试人员测试)。

    • 各分支之间不直接交互(merge)。

    • 定期merge分支。

    4. 分支merge

    • 只有确认要发版时才会merge到主干。

    • 分支Merge主干只有一次。

    • 分支开发和测试结束时确认无误后,合并到主干。

    • 不能跳跃Merge(必须保证此分支之前的分支已经合并过)。

    • 针对主干tag。

    • 主干merge后,要同时将主干上的数据同步(merge)到此次合并之后的分支上。

    5. 分支生命周期。

    分支merge到主干后,生命周期结束。

    6. 主干

    • 主干只有决定发布时才进行merge.

    • 每一次变动(决定发布)都需要打tag并同步代码到还存活的分支上(未发布的分支)

    • 当线上版本需要进行修改时,针对对应的tag迁出一个分支 进行bugfix后在与主干进行merge同时做tag和同步其他存活的分支。

    7. 重点说明

    • 分支生命周期。

    • 分支merge到主干只有一次,并需要相应的项目负责人执行。

    • 分支定期从主干同步代码。

    • 主干代码变动后(分支merge到主干)必须tag并merge代码到存活的分支(告知各分支负责人或自行同步)

    展开全文
  • 前后端如何高效的并行开发

    千次阅读 2018-11-06 10:59:28
    前后端如何高效的并行开发 沪漂程序员的生活史 2018-11-06 10:57:23 开发效率一直都是初创公司的首要标准,能够更快的完成客户或者产品需求的研发对公司来说也是一笔不小的财富,当然你的工资也可能水涨船高,小...

    前后端如何高效的并行开发

    沪漂程序员的生活史 2018-11-06 10:57:23

    开发效率一直都是初创公司的首要标准,能够更快的完成客户或者产品需求的研发对公司来说也是一笔不小的财富,当然你的工资也可能水涨船高,小邹总结了以下几点,希望对大家有所帮助:

    前后端如何高效的并行开发

     

    1、前后端分离

    前端与后端的分离,能使前端的开发脱离后端的开发模式,拥有更大的自由度,以此便可做前端工程化、组件化、单页面应用等。

    可以参考:前后端分离、web与static服务器分离(https://segmentfault.com/a/1190000015297319)。

    2. 尽量避免后端模板渲染

    web 应用的渲染方式分为服务器端渲染和客户端渲染,当下比较推荐的方式是客户端渲染,数据使用全 ajax 的方式进行交互。

    除非在一些不得不使用服务器端渲染的情况下(如门户、电商等),应当尽量使用客户端渲染,因为客户端渲染更能使前后端分离(项目分离、代码解耦、协作分离、职责分离等),也能更好的做本地接口模拟开发,提升开发效率。

    即使用服务器端渲染,在技术支持的条件下,可以使用 node 中间层(由前端人员开发),代替传统的后端模板渲染,这样可以使后端与前端完全解耦,后端与前端只有数据上的往来。

    可以参考:细说后端模板渲染、客户端渲染、node 中间层、服务器端渲染(ssr)(https://segmentfault.com/a/1190000016704384)。

    3. 尽量避免大量的线上调试

    做好本地接口模拟开发(包括后端模板渲染),避免大量的线上调试,因为线上调试很不方便,也很费事,并且每次更新代码,都需要重新构建,然后同步到服务器。

    所以做好本地接口模拟开发,只要程序在本地运行是没问题的,一般线上就不会有太大的问题,这样就能大幅降低调试工作量,提升开发效率。

    4. 本地接口模拟开发

    本地接口模拟就是在本地模拟一个与服务器差不多的环境,能够提供数据所需的接口,进行错误模拟处理等等。

    本地接口模拟开发的意义就在于能够在本地完成几乎所有的开发与调试,尽量减少线上的调试,提高开发效率。

    一些常用库:

    • browser-sync(https://github.com/BrowserSync/browser-sync):能让浏览器实时、快速响应文件更改( html、 js、css、 sass、 less 等)并自动刷新页面,并且可以同时在PC、平板、手机等设备下进行调试。
    • webpack-dev-middleware(https://github.com/webpack/webpack-dev-middleware):A development middleware for webpack。
    • webpack-hot-middleware(https://github.com/webpack-contrib/webpack-hot-middleware):热更新本地开发浏览器服务。

    另外,本地接口模拟开发需要后端开发人员有规范的接口文档。

    可以参考:本地化接口模拟、前后端并行开发(https://segmentfault.com/a/1190000015297352)。

    5. 规范的接口文档

    前端与后端协作提升开发效率的一个很重要的方法就是减少沟通:能够形成纸质的文档就不要口头沟通、能够把接口文档写清楚也不要口头沟通(参数、数据结构、字段含义等),特别是线上协作的时候,面对面交流是很困难的。

    一个良好的接口文档应当有以下的几点要求与信息:

    1. 格式简洁清晰:推荐用 API Blueprint(https://apiblueprint.org/)
    2. 分组:当接口很多的时候,分组就很必要了
    3. 接口名、接口描述、接口地址
    4. http 方法、参数、headers、是否序列化
    5. http 状态码、响应数据

    接口文档可以用一些文档服务(如 leanote(https://github.com/leanote/leanote))来管理文档,也可以用 git 来管理;书写方式可以用 markdown,也可以 YAML、 JSON 等。

    推荐使用 markdown 方式写文档,用 git 管理文档。

    可以参考:

    • 本地化接口模拟、前后端并行开发(https://segmentfault.com/a/1190000015297352)
    • API Blueprint(https://apiblueprint.org/)

    6. 去缓存

    前端需要做好去客户端缓存的功能,保证用户始终都是使用的最新资源,不会因为因为缓存的问题而出现 bug。

    传统的去缓存是在静态资源 url 上加上版本号或者时间戳,不过因为构建工具的出现以及一些浏览器已经不支持这种方式了的缘故,这种方式已经是过去时了。

    现在去缓存是将文件 hash 化命名,只要文件变动,文件名就会不一样,以此才能彻底的去缓存。如果使用 webpack 进行打包,会自动将所有文件进行 hash 化命名。

    可以参考:(https://webpack.js.org/configuration/output/#output-filename)。

    7. 友好的沟通

    不管工具多么厉害,很多时候都免不了要当面沟通,友好、心平气和的沟通也是很重要的哩!

    展开全文
  • 多版本软件并行开发

    千次阅读 2017-09-12 16:57:15
    后来,甚至到了公司里也调查了一下这个问题,但是通常所说的软件管理指的是版本管理,对于定制的多版本并行开发提的较少。最近,随着反射技术和动态语言的发展,现在看来这种并行开发方式采用配置的方式更好。网上的...
  • SVN处理解决并行开发的问题

    千次阅读 2014-12-30 22:39:37
    SVN处理解决并行开发的问题
  • 如果我们已经成功地在Windows中搭建了​基于MPJ Express的并行开发环境,那么我们就可以开始进行并行编程了。本部分我们将在Eclipse中编写一个简单的程序来说明基于MPJ Express进行并行开发的基本方法
  • 在网上看到异构开发主要是OpenCL,而并行开发库有TBB, OpenMP, MPI  这些东西都有什么区别啊.它们之间是不是可以溶合在一起使用呢?
  • Android并行开发

    千次阅读 2017-04-09 22:56:23
    后面在Android上还实现了很多种并行化的算法,比如SHA-1、HDR、K-means、NL-means、SRAD等等,会在近期整理好之后开源的。 原文发表在了异构开发技术社区 整理成教程是队友做的,十分感谢~ 原博文地址 队友的...
  • 如何通过Windows HPC server搭建集群并行开发环境?刚接触,众多问题不了解,希望能帮忙解答
  • 当我们搭建基于MPJ Express的并行开发环境时,出现这样或那样的问题是在所难免的,这一部分我们就来讨论一下其中可能会遇到的问题。 并进一步探讨了使用MPJ Express进行并行计算的方法和应该注意的地方
  • struts多模块并行开发

    2006-12-05 21:38:00
    struts多模块并行开发 并行开发最大的问题就是资源访问冲突,struts-config.xml是最重要的一个资源。我们一般的配置如下:...... config /WEB-INF/struts-config.xml......并行开发体现在软件工程中就是模块的...
  • 深入Java程序性能调优(阿姆达尔定律、缓存组件、并行开发、线程池、JVM调优) 课程讲师:special 课程分类:Java核心 适合人群:初级 课时数量:33课时 更新程度:完成 用到技术:阿姆达尔定律、缓存组件、并行...
  • Git学习文档之一 学习文档-并行开发

    千次阅读 2017-04-11 18:20:34
    并行开发集成管理员工作流由于 Git 允许使用多个远程仓库,开发者便可以建立自己的公共仓库,往里面写数据并共享给他人,而同时又可以从别人的仓库中提取他们的更新过来。这种情形通常都会有个代表着官方发布的项目...
  • Git多分支并行开发合并策略

    千次阅读 2020-02-20 15:56:36
    项目AB分支同时进行开发时,A分支开发过程中有其他分支B上线,并且B分支上线版本已同步(merge)到master,则须合并已上线版本到正在开发的分支A上,避免A分支上线时覆盖B分支的代码,导致功能倒退。 二、命令行合并...
  • 大家好,本次讨论的是C#中的并行开发,给力吧,随着并行的概念深入,哥也赶上这个潮流了,其实之前讨论C#的异步调用或者C#中BeginInvoke或者Invoke都已经涉及了部分本篇的内容。 参考书目:Professional.C#.4.0.and...
  • 多版本并行开发测试解决方案

    千次阅读 2020-05-09 10:20:42
    假设我们有4个需求并行开发联调,那调用链就是下面这种 上图假设的feature_1只变更了 S1 S3 S4 的服务,那么没有变更的S2 S5就可以直接复用master的稳定服务 M2 M5 上图假设feature_2 只变更了 S3;其余的服务都可以...
  • 对WEB应用并行开发的一点想法

    千次阅读 2005-03-19 19:08:00
    首先应该符合软件工程的中软件开发的定义,确定目标,去求分析,系统设计等等,在有了完整的设计之后,WEB页设计者,WEB程序员,数据库程序员或者有更多的人参加,这些人应该是并行开发的。例如一个在线书店,所有的...
  • 喷泉模型也称迭代模型 ...各个开发阶段没有特定的次序要求,完全可以并行进行; 可以在某个开发阶段中随时补充其他任何开发阶段中遗漏的需求。 优点: 提高开发效率 缩短开发周期 缺点:难于管理 ...
  • MPJ Express是一个线程安全的Java版本的并行消息传递库,基于这个消息库,用户即可使用JAVA作为编程语言来开发并行程序。特别是随着高性能平台的普及,面对大数据挖掘或处理任务,抑或是并行计算或编程任务,MPJ ...
  • 中文名: 释放多核潜能 英特尔Parallel Studio并行开发指南 作者: 英特尔亚太研发有限公司 北京并行科技公司 图书分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 清华大学出版社 书号: 9787302235033 ...
  • Android平台利用CUDA框架实现并行开发

    千次阅读 2017-06-26 08:40:38
    随着高性能计算的发展GPU并行计算在许多领域都有广泛的应用,近年来随着嵌入式移动平台的技术进步,如智能手机、电视机顶盒、平板电脑等设备也重视GPU的作用。移动平台设备已经具备GPU并行计算的硬件条件,同时GPU的...
  • C#并行开发中的任务并行(一)

    千次阅读 2014-07-06 13:37:41
    .Net Framework4中引入了新的类库,也就是Task Parallel Libary(任务并行库,PTL),相较于之前的多线程并发的模式,TPL是以任务为基础的一种轻量级并行模式。 通过任务并行库,可以处理数据并行、任务并行等操作...
  • 关于进行并行开发版本控制的介绍

    千次阅读 2004-10-15 08:58:00
    一、关于实施版本控制的必要性:在公司现阶段开发过程中,尤其在多人并行开发,以及后期维护修改的过程中,经常出现这几种问题:1、程序员A已经修改了程序的某个版本1.0,形成版本1.0.1,而这时程序员B并不知道已经...
  • 多核平台的并行开发

    千次阅读 2006-08-01 11:46:00
    在多核的设计概念出现后,迫使软件开发并行化方向发展。目前,在RISC架构的多核系统上已经形成了比较成熟的多线程系统并行处理能力。但是在x86架构下,应用程序的开发者还停留在单线程的开发模式下。 计算机的核心...
  • 在我们熟知的桌面平台,GPU得到了极为广泛的应用,小到各种电子游戏,大到超级计算,多核心、高并行性的GPU成为我们日常娱乐和科学研究中必不可少的“利器”。同样,在近些年兴起的移动平台,诸如智能手机、平板电脑...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 307,297
精华内容 122,918
关键字:

并行开发