本文由葡萄城技术团队原创并首发
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
2020年是不平凡的一年,虽然疫情为整个社会都带来了巨大的冲击,但IT技术人们却从未停止过创新和发展的步伐。
葡萄城是全球领先的软件开发技术提供商。在专注软件开发技术的40年中,葡萄城逐渐形成了吸纳全球顶尖技术人才的分布式研发架构,并先后研发出各类开发控件、商业智能报表工具、低代码开发平台等,引领开发技术的发展。
在2020年,葡萄城仍然秉承着“赋能开发者”使命,用技术至上的工匠精神在前后端技术方面都有着一些创新。下面,就让我们一同来回顾一下吧。
前端(JavaScript、TypeScript):
(图片来源于网络)
1. Canvas绘制模型:使用 HTML5 Canvas 绘制引擎,而非DOM拼接的方式展示表格数据,避免了重复创建和销毁DOM元素时的性能损耗,在画布的绘制过程中,打破了DOM元素渲染对UI的诸多限制,可以绘制种类更为丰富的UI元素,如线形、特殊图形等,通过画法逻辑,还可以实现更加精准的UI界面渲染,解决了浏览器差异造成的样式误差。
2. 双缓存绘制技术:将不易改变的主体图层绘制在缓存的Canvas中,在发生改变需要更新图层时,只需要将缓存Canvas中的主体图层直接通过图像克隆的方式绘制在主Canvas上,大幅优化了页面绘制性能。
3. 稀疏矩阵存储策略:相较于传统的链式存储或数组存储,稀疏矩阵存储构建了基于行索引的数据字典,在松散布局的表格数据中,稀疏矩阵只会对非空数据进行存储,而不需要对空数据开辟额外的内存空间。
4. 前端技术的前瞻性研究:技术团队自WebAssembly发布就开始了投入研究工作,面对可能对前端类似高负载运算等场景带来极大性能提升的全新开放技术,开发团队对其做了大量的性能分析和适配性研究。
以上技术应用于葡萄城纯前端表格控件SpreadJS,纯前端在线报表控件ActiveReportsJS等产品。
后端(.NET、.NET Core、Java):
(图片来源于网络)
1. 减少垃圾回收:消除了单元格的概念,使用double 存储数字、文本、布尔和错误类型,将行存储改成列存储,并结合 C# 的泛型,用字典存储值类型的数据,以此克服垃圾回收的影响,提升处理性能。
2. 共享存储及样式压缩:所谓共享存储,就是把整个软件中重复的数据对象只生成一份,放在一个全局的地方,每个对象用一个数字做ID,其它地方只存这个ID,这样做可以用来降低内存消耗。进一步减少触发GC回收的次数,从而提高程序执行效率。
3. 充分利用高速缓存: CPU在读取数据的时候,会先从最近的缓存中读,如果没命中,才从下一级缓存中读,然而,越高速的存储介质离CPU越近,速度越快,因此,提升CPU的缓存命中率对改善性能意义重大。
4. 框架整体迁移:在过去的2020年,全面将服务端技术栈从.NET Framework迁移到.Net Core。大规模的重构和迁移,为了使得更多开发者能够基于国产化操作系统使用。
5. 微服务架构及自研运算引擎:借助Akka实现 Server + N Workers之间的通信,达到集群和分布式部署的能力;其中自主研发的高性能大数据运算引擎(COT),更可将分析亿级数据达到秒级。
以上技术应用于葡萄城服务端高性能表格组件GcExcel、企业级低代码开发平台活字格、嵌入式商业智能和报表软件Wyn Enterprise等多个产品。
在过去的2020年,葡萄城相继通过十数次的版本发布迭代,将上述创新的前后端技术反映在产品中与广大用户见面,为开发者大大提升了开发效率。
铭记初心,持续为开发者赋能
开发者是各项软件技术的创造者,是软件产业发展的核心力量。葡萄城以“赋能开发者”为使命,就是希望能够全面的支持和赋能一切具有创新精神的开发者,帮助大家创新开发模式,提升开发效率。
因此,除了在产品和技术方面精心打磨,2020年葡萄城也在服务和社群方面做了大量建设。
面向开发者推出的葡萄城公开课,完全免费,课程内容涵盖实战开发经验、未来技术发展、软件项目落地等话题,讲师由葡萄城用户、研发团队和产品经理等担纲;葡萄城新手训练营,针对初次了解产品和技术的客户推出,通过三到五天的集中学习,采用直播授课、互动答疑、动手练习等多种方式,帮助用户快速体验产品,构建技术整体概念,为后续工作的开展打下坚实的基础。
而在技术社区方面,我们持续耕耘博客园等社区的技术博客,参加中国.NET开发者峰会等技术会议。2020年我们相继获得了“最佳技术团队”、“中国技术品牌影响力企业”、“中国低代码领军企业”等社区荣誉奖项,同时有超过200w的用户阅读过葡萄城的社区技术文章。
2020年,克难求进;2021年,未来可期。
这里也打个小广告吧,葡萄城正在招聘开发和技术人员:
了解职位信息请点击https://www.grapecity.com.cn/career/socialrecruitment,欢迎你加入我们,一起为开发者赋能,简历直送:career.xa@grapecity.com,会有HR小姐姐和您取得联系。