在WP8中提醒太慢了

时间:2013-02-05 09:56:39

标签: windows-phone-7 windows-phone-8

我正在制作一个使用大量提醒的Windows手机应用程序,我决定开始测试ScheduledActionService方法(添加,删除,替换,查找)的性能,以查看最快/最简单的方法这样做。

我开始测试,它花了1.5秒的时间删除了14个提醒,然后创建了新的14个提醒。使用find / replace需要相同的时间。这比我预期的要慢很多。该测试在HTC 8X上进行。然后我在三星Omnia 7上做了同样的事情,它的速度要快得多。更换14个提醒大约需要200ms。删除/添加大约慢100毫秒。两个测试都没有调试,我做了几次,看看它是否是随机的,但事实并非如此。

以下是测试的代码:

    public void RefreshReminders() {
        var st = new System.Diagnostics.Stopwatch();
        st.Start();

        foreach (var reminder in ScheduledActionService.GetActions<Reminder>()) {
            ScheduledActionService.Remove(reminder.Name);
        }

        for (int i = 0; i < 14; i++) {
            string reminderName = i.ToString();

            Reminder reminder = new Reminder(reminderName);
            reminder.Title = "Reminder";
            reminder.Content = string.Format("Some data: {0}", i);
            reminder.BeginTime = DateTime.Now.AddSeconds(2000);
            reminder.RecurrenceType = RecurrenceInterval.None;

            ScheduledActionService.Add(reminder);
        }

        st.Stop();
        LogToIS("Reminders replaced (remove/add) in: " + st.ElapsedMilliseconds + "ms");

        st = new System.Diagnostics.Stopwatch();
        st.Start();
        for (int i = 0; i < 14; i++) {
            string reminderName = i.ToString();

            Reminder reminder = (Reminder)ScheduledActionService.Find(reminderName);
            reminder.Content = string.Format("Some data: {0}", i + 5);
            reminder.BeginTime = DateTime.Now.AddSeconds(2000);

            ScheduledActionService.Replace(reminder);
        }
        st.Stop();
        LogToIS("Reminders replaced (find/replace) in: " + st.ElapsedMilliseconds + "ms");
    }

LogToIS只是将字符串写入隔离存储中的文件。

为什么这会在速度更快的手机上运行得更慢?

编辑:无论该应用是WP7.1应用还是WP8应用,HTC 8X的结果都是一样的。

0 个答案:

没有答案