Files
gtk/gtk
Benjamin Otte 800170b47d sortlistmodel: Use timsort
Simply replace the old qsort() call with a timsort() call.

This is ultimately relevant because timsort is a LOT faster in merging
to already sorted lists (think items-chaged adding some items) or
reversing an existing list (think columnview sort order changes).

Benchmarks:

    initially sorting the model
                    qsort  timsort
    128,000 items   124ms    111ms
    256,000 items   264ms    250ms
2020-07-22 14:04:40 +02:00
..
2020-05-28 11:00:03 +03:00
2020-07-02 22:59:03 -04:00
2020-06-15 13:48:03 -04:00
2020-04-20 00:38:58 -04:00
2020-05-11 00:11:37 -04:00
2020-03-25 23:14:44 -04:00
2019-09-16 07:23:17 -04:00
2020-06-18 10:47:16 +03:00
2020-05-11 00:11:37 -04:00
2020-07-16 20:28:21 -04:00
2020-07-16 21:44:31 -04:00
2020-06-11 16:14:47 -04:00
2020-02-05 01:01:47 -05:00
2020-05-11 22:38:21 -04:00
2020-05-11 22:21:39 -04:00
2020-06-27 17:28:15 -04:00
2020-06-18 10:47:16 +03:00
2020-05-11 00:11:37 -04:00
2020-05-04 22:53:07 -04:00
2020-06-18 10:47:16 +03:00
2020-05-28 11:00:03 +03:00
2020-05-28 11:00:03 +03:00
2020-05-04 22:53:08 -04:00
2020-05-28 11:00:03 +03:00
2020-04-20 00:38:58 -04:00
2019-09-13 11:07:54 +02:00
2020-05-28 11:00:03 +03:00
2020-05-11 12:20:57 -04:00
2020-06-18 10:47:16 +03:00
2020-07-16 22:08:15 -04:00
2020-05-04 22:53:08 -04:00
2020-06-23 07:55:53 -04:00
2020-01-29 11:07:32 +01:00
2020-01-29 11:07:32 +01:00
2020-05-28 11:00:03 +03:00
2020-01-29 11:07:32 +01:00
2020-05-28 11:00:03 +03:00
2020-07-16 18:09:57 +02:00
2020-07-16 18:09:57 +02:00
2020-05-31 17:09:23 +02:00
2020-05-31 17:09:23 +02:00
2020-04-16 12:31:01 -04:00
2020-05-30 12:30:23 -04:00
2020-05-11 22:21:39 -04:00
2020-05-30 17:48:44 -04:00
2020-07-17 05:49:12 +02:00
2020-06-18 10:47:16 +03:00
2020-05-12 13:45:15 +01:00
2020-01-08 18:48:21 -05:00
2020-06-07 08:52:45 -04:00
2020-02-09 23:59:22 -05:00
2020-07-04 10:00:25 +02:00
2020-07-16 22:08:15 -04:00
2020-03-02 03:18:55 +01:00
2020-06-18 10:47:16 +03:00
2020-03-02 03:18:55 +01:00
2020-06-18 10:47:16 +03:00
2020-03-02 03:18:55 +01:00
2020-05-28 11:00:03 +03:00
2020-06-18 10:47:16 +03:00
2020-06-26 16:13:02 -04:00
2020-05-30 17:48:44 -04:00
2020-04-06 15:13:54 -04:00
2020-07-04 10:00:25 +02:00
2020-05-11 22:21:14 -04:00
2020-07-12 10:59:31 -04:00
2020-07-05 19:54:20 -04:00
2020-07-16 21:48:08 -04:00
2020-05-30 12:30:23 -04:00
2020-07-16 08:54:36 -04:00
2020-06-18 10:47:16 +03:00
2020-05-11 22:21:39 -04:00
2020-05-28 11:00:03 +03:00
2020-05-11 00:11:37 -04:00
2020-05-04 17:01:18 -04:00
2020-06-18 19:22:20 +01:00
2020-02-21 00:51:02 -05:00
2020-05-06 14:19:50 -04:00
2020-05-06 14:19:50 -04:00
2020-02-21 00:51:03 -05:00
2020-02-21 00:51:03 -05:00
2020-02-21 00:51:03 -05:00
2020-05-11 22:21:39 -04:00
2020-07-16 22:08:15 -04:00
2020-06-03 13:34:27 -04:00
2020-07-17 05:49:11 +02:00
2020-02-18 20:32:17 -05:00
2020-04-22 15:18:16 -04:00
2020-06-16 14:34:54 -04:00
2020-05-11 22:21:14 -04:00
2020-06-18 19:22:20 +01:00
2020-05-28 17:08:33 -04:00
2020-03-13 07:47:48 -04:00
2020-05-28 11:00:03 +03:00
2020-01-26 18:21:07 +01:00
2019-09-16 07:23:17 -04:00
2020-06-18 10:47:16 +03:00
2020-05-31 17:09:23 +02:00
2020-04-17 15:21:00 +02:00
2020-05-30 19:26:46 -04:00
2020-05-28 11:00:03 +03:00
2020-05-11 22:21:39 -04:00
2020-07-16 22:08:15 -04:00
2020-05-30 19:26:45 -04:00
2020-06-26 07:13:32 +02:00
2020-06-18 10:47:16 +03:00
2020-06-27 10:51:06 +02:00
2020-06-03 13:34:27 -04:00
2020-07-20 07:03:08 -04:00
2020-04-11 17:29:27 -04:00
2020-05-11 22:38:21 -04:00
2020-05-11 08:15:56 -04:00
2020-03-05 08:14:37 +01:00
2020-01-26 18:21:07 +01:00
2020-05-30 19:26:44 -04:00
2020-06-07 08:52:45 -04:00
2020-07-12 10:59:31 -04:00
2020-05-11 22:38:21 -04:00
2020-05-30 19:26:44 -04:00
2020-05-25 14:22:10 -04:00
2020-05-04 22:53:08 -04:00
2020-05-27 15:49:24 +01:00
2020-06-05 22:50:30 -04:00
2020-05-11 22:21:33 -04:00
2020-06-06 21:32:55 -04:00
2020-04-06 22:59:45 -04:00
2020-07-12 09:12:43 -04:00
2020-07-12 09:12:43 -04:00
2020-07-16 08:54:36 -04:00
2020-06-07 08:52:45 -04:00
2020-05-04 22:53:07 -04:00
2020-02-24 20:46:41 -05:00
2020-05-11 12:20:57 -04:00
2020-04-06 16:32:03 -04:00
2020-04-11 17:29:27 -04:00
2020-05-28 11:00:03 +03:00
2020-03-05 08:14:37 +01:00
2020-05-31 17:09:23 +02:00
2020-05-31 17:09:23 +02:00
2020-05-31 17:09:23 +02:00
2020-05-04 22:53:08 -04:00
2020-04-25 21:03:57 -04:00
2020-06-27 10:51:06 +02:00
2020-06-18 10:47:16 +03:00
2020-07-13 15:06:08 -04:00
2020-06-26 16:13:02 -04:00
2020-04-20 00:38:58 -04:00
2020-04-03 15:30:56 +01:00
2020-05-11 00:11:37 -04:00
2020-03-25 23:14:27 -04:00
2020-04-06 15:13:54 -04:00
2020-04-11 21:56:32 -04:00
2020-05-11 22:38:21 -04:00
2020-06-18 17:20:56 +01:00
2020-07-16 21:45:11 -04:00
2020-06-28 12:43:11 -04:00
2020-07-22 14:04:40 +02:00
2020-05-11 00:11:37 -04:00
2020-05-11 00:11:37 -04:00
2020-05-11 00:11:37 -04:00
2020-06-05 22:50:30 -04:00
2020-05-30 19:26:44 -04:00
2020-05-28 11:00:03 +03:00
2020-07-20 08:24:52 -04:00
2020-06-06 21:32:55 -04:00
2020-06-05 22:50:30 -04:00
2020-03-05 08:14:37 +01:00
2020-06-06 21:32:55 -04:00
2020-01-29 11:07:32 +01:00
2020-01-08 18:48:20 -05:00
2020-07-20 08:24:52 -04:00
2020-05-11 20:33:23 -04:00
2020-07-22 14:04:40 +02:00
2020-06-18 10:47:16 +03:00
2020-05-28 11:00:03 +03:00
2020-07-13 15:06:35 -04:00
2020-05-30 19:26:45 -04:00
2020-06-05 17:08:43 -04:00
2020-03-06 05:43:56 +01:00
2020-06-18 10:47:16 +03:00
2020-06-18 10:47:16 +03:00
2020-05-28 11:00:03 +03:00
2020-06-26 07:13:32 +02:00
2020-04-19 16:26:25 -04:00
2020-05-04 17:01:18 -04:00
2020-07-20 08:24:52 -04:00
2020-04-26 15:13:15 +05:00
2020-05-07 23:57:58 +05:00
2020-07-22 14:04:40 +02:00
2020-05-28 11:00:03 +03:00