首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使此功能更快?

如何使此功能更快?
EN

Code Review用户
提问于 2011-09-23 20:39:39
回答 8查看 642关注 0票数 3

我有一周内售出的所有订单的大文件。这个文件为每个订单提供一行。我们每天有5000多份订单。它逐行读取文件,然后将销售添加到销售数据库中。我真的需要提高自己的表现。

代码语言:javascript
复制
   static void sold4weeks1()
    {
        string sold, asin;
        string[] lines = System.IO.File.ReadAllLines(@"C:\out\qqqqq.txt");

        inventoryBLL u = new inventoryBLL();
        try
        {
            foreach (string line in lines)
            {

                char[] tabs = { '\t' };
                string[] words = line.Split(tabs);
                asin = words[12];
                sold = words[14];

                if (words[0].Substring(0, 3) == "S01") continue;
                try
                {
                    if (words[4] == "Shipped" || words[4] == "Unshipped")
                    {

                        u.setSoldin28(asin, Convert.ToInt16(sold));
                        Console.WriteLine("Update");
                    }
                }
                catch
                {
                }
            }
        }
        catch
        { }
    }
EN

回答 8

Code Review用户

发布于 2011-09-23 20:43:23

u.setSoldin28(asin, Convert.ToInt16(sold));正在写入数据库吗?

保存所有的更改,并在解析完成后将它们放在一个单独的连接下。这应该会节省不少时间。

不过,您在这段代码中还有很多其他问题。我强烈建议您研究适当的异常处理技术。

票数 8
EN

Code Review用户

发布于 2011-09-23 20:41:47

不要使用ReadAllLines,逐行阅读它,它会大大提高性能

票数 2
EN

Code Review用户

发布于 2011-09-23 20:59:53

将char数组移到循环外。

根据我的经验,使用StreamReader是从文件中读取数据的最快方法。

对于每一行循环的每一个参数。

票数 2
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/4965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档