12

The next ten years will be the era of the Industrial Internet. The characteristics of the Industrial Internet are digital, online, and efficient. This means that all walks of life are in urgent need of digital transformation and efficiency transformation. In this transformation process, the enterprise OA system plays a vital role.

For enterprises, the OA system not only improves the organization and management level and office efficiency of the enterprise, but also achieves the purpose of improving the efficiency of decision-making, and enhances the competitiveness of the enterprise. However, as the functional modules of the OA system become more complete and bloated, this efficiency platform is gradually "ineffective."

1. The core of OA system is the efficiency problem in business management

The management of the OA system ultimately needs to return to the road of business management, after all, business is the fundamental operation of an enterprise. What are the common business management in OA system? For example, the preparation of financial statements, the generation of vouchers; the management of suppliers in the purchasing department, the input and custody of purchasing documents; the management of contracts in the business department, customer maintenance, and so on. Most of these analysis and decision-making are done in the form of tables, and the OA system needs to be required to store and share the data in good condition, and to integrate the data with other systems.

However, most of the table functions in the current enterprise OA system shoulder very complex business requirements. It not only needs to have most of the core functions in traditional Excel, including function calculations, conditional formatting, charts, etc.; it also needs to support efficient multi-person collaborative editing and huge data processing requirements.

The amount of data and the gradual increase in table functions are followed by a decrease in calculation speed. This not only affects work efficiency, interrupts the continuity of ideas, but also increases the error rate and boredom of employees or users (especially when dealing with repetitive tasks).

In addition, the memory occupation problem is also a very important but easily overlooked performance indicator in OA systems. If the memory occupation problem is not considered in the technical selection, a 3M file will often consume more than 100 megabytes of memory space. . If the Excel read operation containing a large amount of data is carried out at the same time, it is easy to cause a memory overflow problem. The technical decision-making level of traditional enterprises generally ignores the "value of memory", but:

  • Once the amount of access is large, the memory will rise instantly, leading to frequent GC, resulting in performance degradation;
  • High memory will also cause server paging, at which time performance will drop sharply;
  • A drop in throughput will cause the queue to become full, and the server will report errors such as 503.

So unless the company really has sufficient budget to upgrade the server, it really can't ignore the optimization of memory. Behind these two issues, it also leads to the focus of our discussion today-how to improve the data processing performance of the OA system form module & the technical selection of form data processing products.

2. How much are you willing to invest to pay for the 20-second business optimization?

When most companies encounter tabular data processing requirements in the daily development of projects, they often directly introduce technical solutions such as Apache POI into the business code.

Apache POI is a very powerful Office software operating package. It is a free and open source cross-platform Java API written in Java by the Apache Software Foundation. It provides read and write functions for Microsoft Office format files. It is widely used in projects. As an open source software, it provides great convenience for developers.

However, even though POI is very powerful, there are still some problems that cannot be ignored. The first is that the code is relatively cumbersome, and when the amount of Excel data is very large, the operation logic of POI is to read all the contents of Excel into the memory, which leads to very serious memory consumption. A 3M file may even Need to consume more than 100 megabytes of memory space. If the Excel read operation containing a large amount of data is carried out at the same time, it is easy to cause a memory overflow problem.

In addition to memory consumption, there are also shortcomings such as insufficient version compatibility. In the process of version upgrade, it is necessary to modify the previous code or perform version isolation of the jar package, which brings many potential risks to the project.

In order to help enterprise personnel with related needs in technical selection and provide some more intuitive data comparisons, we conducted a comparison test for everyone. The following figure shows the related results of the test:

葡萄城 x GcExcel

From the test data, the server-side high-performance form component GrapeCity Documents for Excel (abbreviated as: GcExcel) provided by Grape City performs better than Apache POI in terms of operating speed, functions, and memory consumption. , For example, its average processing speed can reach 7 times that of POI, while the memory consumption is less than one-seventh.

In order to further test the read performance limit of Excel files, we used the StopWatch function to monitor the opening time of Excel. The test object is a spreadsheet file containing 30 columns, 1,000,000 rows, and 30,000,000 cells. After testing, Excel needs to wait 34 seconds to open this file, while it only takes 12 seconds to open such a file with GcExcel.

This 20-second time is self-evident for user experience and business flow. This test result also provides an idea for the company's selection-how much are you willing to invest to pay for the 20-second business optimization?

3. No need to rely on Office and POI, so table data processing performance soars

For this short 20 seconds, Grape City tried a lot of optimization practices, such as reducing garbage collection, sharing storage, using cache, using set-based operations, using SIMD to calculate data, etc., based on these practices, the table component SpreadJS launched And GcExcel has helped many companies reduce project R&D costs and achieve higher processing performance.

Taking GcExcel as an example, it implements batch import and export of spreadsheet data on the server side, which effectively avoids the memory limitation of the front-end browser. When used with SpreadJS, the system can achieve true front-end and back-end load balancing, helping developers to easily cope with OA system development. Business scenarios such as front-end and back-end data synchronization, batch export and printing, and high-performance processing of report templates are often encountered in online documents.

In fact, the concept of table technology and its derivatives is not new, but as companies have gradually deepened their requirements for system processing performance and ease of use, they have attracted more and more attention from developers and technical decision makers in recent years. An explorer in the field of table technology has launched a variety of table components that have become the "necessary solution" in the field of table technology, helping companies achieve the goal of "reducing costs and increasing efficiency" at a very low cost.

Conclusion:

Under the wave of digital transformation, most enterprises have extensive application scenarios for forms in business operations. With the development of business, local document management or traditional open source and free POIs can no longer satisfy users' performance and system compatibility for form products. This also forces the continuous optimization and iteration of table products to survive the fittest. Whoever can find the most suitable technology selection or product for their own business development is more likely to find more development opportunities.

Extended reading:

Grape City front-end table control SpreadJS
Grape City server form component GcExcel
class Excel full stack solution

segmentfault 思否


思否编辑部
4.4k 声望117k 粉丝

思否编辑部官方账号,欢迎私信投稿、提供线索、沟通反馈。