【发布时间】:2021-12-08 03:16:25
【问题描述】:
据我所知,我想将数据从 CSV 文件导入到 spring 控制器, 有两种方法:
- 在客户端使用 papaparse.v.v 之类的库解析数据,然后将其发送到控制器
- 上传文件,然后在服务器端解析 以上两种方式中哪种方式最好,非常感谢
【问题讨论】:
据我所知,我想将数据从 CSV 文件导入到 spring 控制器, 有两种方法:
【问题讨论】:
各有优劣。
如果您只有少数用户/客户端,那么在服务器上解析可能更合适。
否则,应该考虑在客户端进行解析,因为它可以减少服务器的工作量。如果您的应用程序每天有成千上万的请求,则应优先考虑。
【讨论】:
首先,除非 CSV 文件很大或者您经常执行此导入操作,否则两种方法之间的性能差异很可能与用户无关......以及您。
但是让我们比较一下这两种方法:
客户端 CSV 解析:客户端 CSV 解析器很可能会很快……而您正在使用用户的 CPU 来执行此操作。但是,如果/当您将数据发送到服务器时,您将不得不重新序列化所有数据(例如,作为 JSON)。并且序列化的表单很可能需要在服务器端进行反序列化。
因此,总体而言,您将在服务器端节省很少的时间,并增加在用户机器上解析和序列化的成本。
但是,如果您可以在将数据发送到服务器之前在客户端进行一些(重要的)数据缩减,那么您最终可能会节省一些数据。这将取决于您可以减少多少数据,以及客户端 服务器网络数据速率。
服务器端 CSV 解析。这避免了额外的序列化/反序列化开销。但是没有任何减少数据的机会。
简而言之......这取决于具体情况。
但我的建议是:“避免过早优化”。不要试图猜测哪种方法会更有效。实施更简单的版本,并且仅在证明需要优化时才优化(您的工作系统!)。
【讨论】: