Commit Graph

334 Commits

Author SHA1 Message Date
levlam
78ba8fa983 Add AsyncFileLog. 2022-10-09 13:04:57 +03:00
levlam
67aa7082d6 Add thread.get_id() test. 2022-10-04 23:00:02 +03:00
levlam
628b8901bc Optimize logging to NULL on Windows. Fixes #2112.
It is possible to do only about 100 writes to NULL per second, which is about 8-80 times less than even performance of writes to a console app.
2022-10-03 15:11:23 +03:00
levlam
e37f3c17af Fix warnings. 2022-09-17 22:54:21 +03:00
levlam
9bf5d57851 Add TD_HAVE_THREAD_AFFINITY macros. 2022-09-17 21:58:00 +03:00
levlam
9d5c151a3f Use DWORD as thread::id on Windows. 2022-09-17 13:21:04 +03:00
levlam
0eddd8d405 Add thread::set_affinity_mask/get_affinity_mask. 2022-09-14 14:38:14 +03:00
levlam
59a5f15a41 Add WaitFreeHashSet. 2022-08-20 16:19:58 +03:00
levlam
88b52f1535 Use variable step in unicode_simple_category_jump_pos. 2022-08-19 18:56:36 +03:00
levlam
5c9d306208 Optimize get_unicode_simple_category with jump table. 2022-08-19 17:56:47 +03:00
levlam
96cca84a60 Remove source from next_utf8_unsafe. 2022-08-19 16:37:44 +03:00
levlam
9e4ae8997b Fix WaitFreeHashMap::get_pointer. 2022-08-04 22:40:22 +03:00
levlam
6f46b50b4b Add WaitFreeHashMap::foreach. 2022-08-04 15:08:18 +03:00
levlam
08dbc7d9f2 Add operator[] to WaitFreeHashMap. 2022-08-04 00:38:13 +03:00
levlam
2d705004a3 Add WaitFreeVector. 2022-08-02 14:27:18 +03:00
levlam
36a57c3584 Remove unneeded FlatHashTable copy constructors. 2022-07-23 11:13:17 +03:00
levlam
ac8af37872 Add size() and empty() to WaitFreeHashMap. 2022-07-20 13:35:32 +03:00
levlam
0bdd15fe9f Fix warning. 2022-07-15 00:06:41 +03:00
levlam
abc9ed2cd9 Minor fixes. 2022-07-14 18:38:48 +03:00
Arseny Smirnov
f4c97b25ec add Mutex wrapper around std::mutex and use it instead of SpinLock 2022-07-14 16:27:06 +04:00
levlam
33d1dfec0e Add LargeFiles test. 2022-05-11 19:03:03 +03:00
levlam
5fda16c89e Add WaitFreeHashMap. 2022-05-19 19:22:33 +03:00
levlam
e4bff687cf Add td::remove_emoji_selectors test. 2022-05-12 19:18:14 +03:00
levlam
805e4d4a25 Add get_fitzpatrick_modifier test. 2022-05-12 19:11:17 +03:00
levlam
e6738efa3f Add test for remove_emoji_modifiers. 2022-05-12 19:04:37 +03:00
levlam
6377a15d02 Move is_emoji test to separate file. 2022-05-12 18:45:25 +03:00
levlam
bb0908504b Fix clean_filename test. 2022-05-12 13:10:19 +03:00
levlam
2ae689f54f Add another pq_factorize test. 2022-03-21 20:43:28 +03:00
levlam
6e86faaa0f Improve factorization tests. 2022-03-20 00:01:07 +03:00
levlam
eb89f8b35f Minor include fixes. 2022-03-12 00:50:04 +03:00
levlam
acf30d3700 Fix HashTable::operator->. 2022-03-11 13:34:36 +03:00
levlam
2413b3fd37 Add unordered_map<string, ...> benchmark. 2022-03-09 23:23:44 +03:00
levlam
7f7344c363 Add separate FlatHashSet.h. 2022-03-09 23:01:10 +03:00
levlam
07bb129653 Move FlatHashTable implementation to FlatHashTable.h. 2022-03-09 18:03:56 +03:00
levlam
8b897c7c5f Move MapNode and SetNode to separate classes. 2022-03-09 16:29:47 +03:00
levlam
f993bebc2f Disable FlatHashTable for release. 2022-03-01 15:16:57 +03:00
levlam
a657cf6458 Use random begin() in HashTable. 2022-02-25 00:04:32 +03:00
levlam
ecb14f1bdd Minore fixes. 2022-02-24 21:38:57 +03:00
levlam
fe06a1d4fc Fix GCC warnings. 2022-02-23 22:46:32 +03:00
levlam
b3a784f4ba Properly clear other hashmap after move. 2022-02-23 15:58:12 +03:00
levlam
f0a2ccd0fb Remove value_type from SetNode. 2022-02-21 02:22:01 +03:00
levlam
9e8b2489bd Keep the first value from initializer_list. 2022-02-21 00:33:19 +03:00
levlam
77ccc13181 Add Map/SetNode::copy_from. 2022-02-20 23:03:34 +03:00
levlam
983cc2c45c Various hash table improvements. 2022-02-19 11:34:43 +03:00
levlam
94289c0c9e Fix SCOPE_EXIT redefinition. 2022-02-18 23:25:23 +03:00
levlam
ae3854d97c Various fixes. 2022-02-18 23:04:25 +03:00
Arseny Smirnov
952ac3ed7c FlatHashMap: add MaskSse2 to benchmark 2022-02-18 00:48:33 +01:00
Arseny Smirnov
a356cc7e3d FlatHashMap: optimizations 2022-02-18 00:30:14 +01:00
Arseny Smirnov
5ff92065bf FlatHashMap: fixes for portability 2022-02-17 20:22:46 +01:00
Arseny Smirnov
34a69e3133 FlatHashMap: add implementation with chunks 2022-02-17 19:40:18 +01:00
levlam
512c0cd3c2 Fix formatting. 2022-02-12 00:48:35 +03:00
Arseny Smirnov
ecceb51881 FlatHashSet 2022-02-11 17:41:40 +01:00
levlam
15f27455c5 Move other big classes inside FlatHashMap to unique_ptr. 2022-02-11 19:27:32 +03:00
levlam
5b4bea1fef Add HashMap build time benchmark. 2022-02-11 14:46:30 +03:00
levlam
6ae2096d68 Fix HashSet benchmark. 2022-02-11 11:26:58 +03:00
Arseny Smirnov
500c20f7ea FlatHashMap: more benchmarks 2022-02-10 22:34:01 +01:00
levlam
b71e330396 Fix tests. 2022-02-11 00:11:02 +03:00
Arseny Smirnov
987e875520 FlatHashMap: support mem_stat->rss in memory benchmark; move memory benchmark in other folder, fix build. 2022-02-10 18:33:23 +01:00
Arseny Smirnov
6bb365567b FlatHashMap: improve memory benchmark 2022-02-10 18:29:52 +01:00
levlam
1a28bbd00c Remove redundant checks from calc_bucket. 2022-02-10 18:30:03 +03:00
Arseny Smirnov
10c59db842 FlatHashMap: simple benchmark for memory usage 2022-02-10 14:37:19 +01:00
Arseny Smirnov
f4b3a09646 FlatHashMap: shrink table if too sparse 2022-02-10 14:37:19 +01:00
levlam
9e6d106585 Minor improvements. 2022-02-10 11:55:32 +03:00
Arseny Smirnov
129d12566d FlatHashMap: add tests 2022-02-09 22:22:51 +01:00
Arseny Smirnov
8d8896d7f0 FlatHashMap: remove_if; generic td::table_remove_if 2022-02-09 22:22:51 +01:00
levlam
4eacaa3ebd FlatHashMap improvements. 2022-02-09 03:08:18 +03:00
Arseny Smirnov
d5e163cd9d FlatHashMap: support initializer_list 2022-02-08 20:47:10 +01:00
Arseny Smirnov
d5db554b70 FlatHashMap: benchmark 2022-02-08 19:38:09 +01:00
levlam
b62ced6d95 Minor improvements. 2022-02-08 00:42:53 +03:00
levlam
bcc2adeb47 Fix includes and formatting. 2022-02-08 00:04:34 +03:00
Arseny Smirnov
86bceb2972 td: replace most of std::unordered_map usages to td::FlatHashMap 2022-02-07 21:21:31 +01:00
Arseny Smirnov
088ce02832 tdutils: FlatHashMap 2022-02-07 21:21:31 +01:00
levlam
0b33522821 Improve ChainScheduler. 2022-02-03 22:01:09 +03:00
levlam
950876b496 Minor improvements. 2022-02-01 18:25:02 +03:00
Arseny Smirnov
24766fdad8 ChainScheduler: pass new test 2022-02-01 16:04:58 +03:00
Arseny Smirnov
b4396f18c6 ChainScheduler: tests and optimizations 2022-02-01 16:02:35 +03:00
levlam
b1b945e239 Minor fixes. 2022-01-31 15:56:44 +03:00
levlam
e7406475ff Fix compilation errors. 2022-01-28 19:12:20 +03:00
Arseny Smirnov
355c2950ad ChainScheduler - new implementation of SequenceDispatcher 2022-01-28 15:50:59 +03:00
levlam
b007cc7a2c Use compressed base64-encoded list of emoji instead of emoji themselves to reduce binary size and stack usage. 2022-01-13 23:43:22 +03:00
levlam
8085779cdc Update copyright year. 2022-01-01 03:35:39 +03:00
levlam
5f965a1ea4 Don't try to use "fr-FR" locale, because check for its existence is
broken with musl: https://www.openwall.com/lists/musl/2017/11/08/1.
2021-12-24 15:12:14 +03:00
levlam
ff6615e734 Fix some misprints. 2021-12-23 14:18:32 +03:00
levlam
a28b5f2fbb Remove explicit verbosity level changes in tests. 2021-11-21 21:41:11 +03:00
levlam
bd733c1c6e Fix CheckExitGuard test. 2021-11-18 17:01:05 +03:00
levlam
42ca2dcef5 Add serialize test. 2021-11-18 16:32:12 +03:00
levlam
bf9c78e982 Fix is_emoji. 2021-11-18 14:37:31 +03:00
levlam
b731414d42 Init some fields just in case. 2021-11-11 17:39:09 +03:00
levlam
5a02af8c72 Use const reference if range-based for if appropriate. 2021-11-10 20:39:35 +03:00
levlam
51cf4baee6 Fix tests compilation without threads. 2021-10-25 10:37:38 +03:00
levlam
c5a2f1570d Remove superflous endif comments. 2021-10-25 10:05:15 +03:00
levlam
f7d073baa4 Fix building with TD_EVENTFD_UNSUPPORTED. 2021-10-25 01:46:39 +03:00
levlam
9f44816a62 Minor improvements. 2021-10-21 12:51:16 +03:00
levlam
1e49f6dc13 Use auto as variable type if it is initialized with a cast. 2021-10-20 01:27:02 +03:00
levlam
e78a5fbecf Explicitly specify namespace td in tdutils tests. 2021-10-14 15:08:35 +03:00
levlam
f5fe132722 Remove unneeded logging in tests. 2021-10-07 16:56:45 +03:00
levlam
3af0059b94 Add is_emoji method. 2021-09-20 22:30:23 +03:00
levlam
84ad2e5b19 Remove redundant semicolons. 2021-08-30 23:27:32 +03:00
levlam
40c5d47717 Make inherited classes final if possible. 2021-07-04 05:58:54 +03:00
levlam
edfa5d1d98 Use final instead of override. 2021-07-03 23:51:36 +03:00