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
|
10680fe353
|
Minor improvements.
|
2022-10-03 14:39:20 +03:00 |
|
levlam
|
8f0ffd0a65
|
Reduce MAX_STORAGE_SIZE for wait free hash tables to reduce split_storage time.
|
2022-09-30 16:38:11 +03:00 |
|
levlam
|
ee04923ce1
|
Add lazy initialization for keyword_stickers_map_.
|
2022-09-27 16:16:36 +03:00 |
|
levlam
|
66dca9a510
|
Update emoji to 15.0.
|
2022-09-27 14:28:08 +03:00 |
|
levlam
|
99a2ffdcec
|
Update Unicode tables to 15.0.
|
2022-09-27 14:22:30 +03:00 |
|
levlam
|
4a6e0aea43
|
Add utf8_prepare_search_string.
|
2022-09-27 14:16:09 +03:00 |
|
levlam
|
b3e16c5dd7
|
Use the same template recursively for instant view links.
|
2022-09-26 19:24:39 +03:00 |
|
levlam
|
faa738d6a9
|
Keep only Slice overload of utf8_utf16_substr.
|
2022-09-22 12:08:34 +03:00 |
|
levlam
|
5c5d19e76f
|
Increase 8 times number of WaitFreeMap storages.
|
2022-09-22 07:13:17 +03:00 |
|
levlam
|
b6db8a66ec
|
Remove dangerous Timestamp::store.
|
2022-09-21 14:25:31 +03:00 |
|
levlam
|
275ee280d2
|
Use thread-local EVP_MD_CTX in OpenSSL 3.0.
|
2022-09-19 18:17:51 +03:00 |
|
levlam
|
cb70993b90
|
Fix buggy behavior of pthread_setaffinity_np/pthread_getaffinity_np on NetBSD.
|
2022-09-17 23:25:42 +03:00 |
|
levlam
|
9bf5d57851
|
Add TD_HAVE_THREAD_AFFINITY macros.
|
2022-09-17 21:58:00 +03:00 |
|
levlam
|
b8abc6c19e
|
Support CPU affinity on NetBSD.
|
2022-09-17 21:48:16 +03:00 |
|
levlam
|
b47fce0d95
|
Support CPU affinity on FreeBSD.
|
2022-09-17 14:45:42 +03:00 |
|
levlam
|
9d5c151a3f
|
Use DWORD as thread::id on Windows.
|
2022-09-17 13:21:04 +03:00 |
|
levlam
|
0cc3fb0e9d
|
Include pthread.h on OpenBSD for pthread_t definition.
|
2022-09-17 01:37:05 +03:00 |
|
levlam
|
0025c4164b
|
Add internalLinkTypeInstantView.
|
2022-09-16 01:30:54 +03:00 |
|
levlam
|
b49b669ac1
|
Support affinity mask on Linux.
|
2022-09-14 15:33:16 +03:00 |
|
levlam
|
0eddd8d405
|
Add thread::set_affinity_mask/get_affinity_mask.
|
2022-09-14 14:38:14 +03:00 |
|
levlam
|
5f98548e02
|
Use STL thread only on Windows.
|
2022-09-14 14:19:09 +03:00 |
|
levlam
|
273ae92a14
|
Use HANDLE as thread id on Windows.
|
2022-09-14 14:18:42 +03:00 |
|
levlam
|
03db53281c
|
Remove this_thread::yield for TD_THREAD_UNSUPPORTED.
|
2022-09-14 14:10:33 +03:00 |
|
levlam
|
ce9175a00b
|
Always use "must be non-empty".
|
2022-09-10 22:48:34 +03:00 |
|
levlam
|
9fc136976c
|
Remove ChainBufferWriter::init.
|
2022-09-06 12:42:00 +03:00 |
|
levlam
|
ba2c071324
|
Use explicit EVP_CIPHER_fetch with OpenSSL 3.0, because EVP_aes_* fetch algorithm each time and are extremely slow in OpenSSL 3.0.
|
2022-08-29 21:16:12 +03:00 |
|
levlam
|
5e87cae73d
|
Remove unused Evp::init parameter.
|
2022-08-29 20:41:35 +03:00 |
|
levlam
|
398a996ef8
|
Use explicit EVP_MD_fetch with OpenSSL 3.0, because EVP_sha* fetch algorithm each time and are extremely slow in OpenSSL 3.0.
|
2022-08-29 16:19:47 +03:00 |
|
levlam
|
28594d38e4
|
Add thread::send_real_time_signal.
|
2022-08-22 00:46:22 +03:00 |
|
levlam
|
959c7261c1
|
Fix function name.
|
2022-08-22 00:17:53 +03:00 |
|
levlam
|
59a5f15a41
|
Add WaitFreeHashSet.
|
2022-08-20 16:19:58 +03:00 |
|
levlam
|
1afbbe5fca
|
Add table for small codes in get_unicode_simple_category.
|
2022-08-19 19:50:34 +03:00 |
|
levlam
|
88b52f1535
|
Use variable step in unicode_simple_category_jump_pos.
|
2022-08-19 18:56:36 +03:00 |
|
levlam
|
231c47e237
|
Use linear search in get_unicode_simple_category.
|
2022-08-19 18:06:29 +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
|
a8b3573a00
|
Always pass non-null pointer to next_utf8_unsafe.
|
2022-08-19 16:19:58 +03:00 |
|
levlam
|
8f433070df
|
Minor fixes.
|
2022-08-14 15:04:08 +03:00 |
|
levlam
|
9e4ae8997b
|
Fix WaitFreeHashMap::get_pointer.
|
2022-08-04 22:40:22 +03:00 |
|
levlam
|
616455088f
|
Improve WaitFreeHashMap.
|
2022-08-04 15:25:46 +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
|
98afc516dc
|
Use WaitFreeVector in Enumerator.
|
2022-08-03 22:51:07 +03:00 |
|
levlam
|
2be8c86855
|
Optimize size() and empty() for WaitFreeVector.
|
2022-08-03 22:48:18 +03:00 |
|
levlam
|
36693a3872
|
Support unique_ptr values in WaitFreeHashMap.
|
2022-08-03 21:17:10 +03:00 |
|
levlam
|
2d705004a3
|
Add WaitFreeVector.
|
2022-08-02 14:27:18 +03:00 |
|
levlam
|
64c718c0a1
|
Fix suppression of an expected error.
|
2022-08-01 19:34:37 +03:00 |
|
levlam
|
d55869eedb
|
Minor improvements.
|
2022-07-23 14:53:32 +03:00 |
|
levlam
|
36a57c3584
|
Remove unneeded FlatHashTable copy constructors.
|
2022-07-23 11:13:17 +03:00 |
|
levlam
|
0f87447ffc
|
Asynchronously destroy some big data storages.
|
2022-07-20 13:40:14 +03:00 |
|
levlam
|
ac8af37872
|
Add size() and empty() to WaitFreeHashMap.
|
2022-07-20 13:35:32 +03:00 |
|
levlam
|
6eef50f769
|
Remove unused DelayedClosure private constructors.
|
2022-07-17 12:11:04 +03:00 |
|
levlam
|
2cc8f34a7d
|
Remove unused to_delayed_closure functions.
|
2022-07-17 11:41:31 +03:00 |
|
levlam
|
04a7583bd0
|
Remove unused Event::clone method.
|
2022-07-17 10:41:17 +03:00 |
|
levlam
|
abc9ed2cd9
|
Minor fixes.
|
2022-07-14 18:38:48 +03:00 |
|
Arseny Smirnov
|
bf80c43c05
|
fix CE
|
2022-07-14 18:36:46 +04:00 |
|
Arseny Smirnov
|
f4c97b25ec
|
add Mutex wrapper around std::mutex and use it instead of SpinLock
|
2022-07-14 16:27:06 +04:00 |
|
Arseny Smirnov
|
7ddc3099f6
|
remove td::this_thread::yield function. usleep_for(1) used instead
|
2022-07-14 16:15:17 +04:00 |
|
levlam
|
6eb03bdc8b
|
Generate GitCommitHash.cpp during building.
|
2022-07-11 12:20:31 +03:00 |
|
levlam
|
d37ad61f86
|
Generate GIT_COMMIT and GIT_DIRTY from CMake.
|
2022-07-08 20:56:43 +03:00 |
|
levlam
|
f8b49fe421
|
Ensure that gen_git_commit_h works even without git.
|
2022-07-07 20:38:44 +03:00 |
|
levlam
|
cb559c396d
|
Use FlatHashTable instead of std::unordered_map/std::unordered_set.
|
2022-06-30 00:59:27 +03:00 |
|
levlam
|
26fdb92dd8
|
Minor improvements.
|
2022-06-28 15:32:05 +03:00 |
|
levlam
|
ebebe0300c
|
Move promise_send_closure to PromiseFuture.h.
|
2022-06-28 14:02:14 +03:00 |
|
levlam
|
340fb779c3
|
Move Promise implementation details to namespace detail.
|
2022-06-28 10:48:03 +03:00 |
|
levlam
|
003fa6ffee
|
Remove back template lambda support in Promise.
|
2022-06-28 10:32:56 +03:00 |
|
levlam
|
32bac7bd24
|
Move Promise to tdutils.
|
2022-06-27 13:30:18 +03:00 |
|
levlam
|
b97bd4848b
|
Allow to inline BufferAllocator::track_buffer_slice.
|
2022-06-24 19:00:29 +03:00 |
|
levlam
|
70f7373729
|
Pretend that statistics is collected at least for a second on start.
|
2022-06-21 20:06:39 +03:00 |
|
levlam
|
1e417ea212
|
Minor fixes.
|
2022-06-02 16:19:16 +03:00 |
|
levlam
|
1b5798393d
|
Move FloodControlGlobal to tdutils.
|
2022-06-09 17:12:59 +03:00 |
|
levlam
|
a282cce5d4
|
Add and use utf8_encode.
|
2022-05-31 15:08:16 +03:00 |
|
levlam
|
83b7be1af9
|
Ignore expected unprocessed error in def_load:system lib.
|
2022-05-26 17:06:00 +03:00 |
|
levlam
|
5fda16c89e
|
Add WaitFreeHashMap.
|
2022-05-19 19:22:33 +03:00 |
|
levlam
|
de5f047dba
|
Remove all emoji modifiers, including modifiers in the middle.
|
2022-05-12 18:02:27 +03:00 |
|
levlam
|
6b838b706b
|
Increase bound for unique_ptr-based HashTable node usage to improve performance.
|
2022-05-02 20:46:20 +03:00 |
|
levlam
|
4652292037
|
Use count instead of find if appropriate.
|
2022-05-01 23:03:06 +03:00 |
|
levlam
|
17275fe422
|
Output the number of objects to be freed on closing.
|
2022-04-25 20:52:44 +03:00 |
|
levlam
|
c021bdfb98
|
Add 4 more allowed characters for file name from file extension in accordance with Telegram server-side limit.
|
2022-04-20 19:31:30 +03:00 |
|
levlam
|
43ea7be0fb
|
Add fast-moved implementation for big HashSet nodes.
|
2022-04-19 02:33:12 +03:00 |
|
levlam
|
e8c3792776
|
Don't try to increase hash table if no new element inserted.
|
2022-04-18 21:27:38 +03:00 |
|
levlam
|
9b19e88c2a
|
Use file name instead of notification sound title if there is none.
|
2022-04-17 19:01:01 +03:00 |
|
levlam
|
7364334ebe
|
Add internalLinkTypeAttachMenuBot.
|
2022-04-01 14:00:34 +03:00 |
|
levlam
|
a7a6ee25cb
|
Add pq_add_mul static function.
|
2022-03-21 20:57:47 +03:00 |
|
levlam
|
93a2b9895d
|
Optimize GCD in pq_factorize.
|
2022-03-21 19:38:40 +03:00 |
|
levlam
|
cd21f58e7d
|
Optimize FlatHashTable::emplace.
|
2022-03-14 13:25:41 +03:00 |
|
levlam
|
057b2d1e05
|
Remove EndSentinel, not allowed in C++14.
|
2022-03-13 23:14:18 +03:00 |
|
levlam
|
daef14ade1
|
Return NodePointer instead of iterator in find/emplace.
|
2022-03-12 15:27:14 +03:00 |
|
levlam
|
62f463b421
|
Use a sentinel for FlatHashTable::end().
|
2022-03-12 13:26:03 +03:00 |
|
levlam
|
eb89f8b35f
|
Minor include fixes.
|
2022-03-12 00:50:04 +03:00 |
|
levlam
|
254f10b885
|
Fix include.
|
2022-03-11 21:49:58 +03:00 |
|
levlam
|
1f38124861
|
Use FlatHashSet.
|
2022-03-11 21:38:48 +03:00 |
|
levlam
|
3eda5b17ac
|
FlatHashTable: optimize find.
|
2022-03-11 14:10:10 +03:00 |
|
levlam
|
acf30d3700
|
Fix HashTable::operator->.
|
2022-03-11 13:34:36 +03:00 |
|
levlam
|
7f7344c363
|
Add separate FlatHashSet.h.
|
2022-03-09 23:01:10 +03:00 |
|
levlam
|
eac8550ec6
|
Move non-template FlatHashTable functions to cpp.
|
2022-03-09 18:16:59 +03:00 |
|
levlam
|
07bb129653
|
Move FlatHashTable implementation to FlatHashTable.h.
|
2022-03-09 18:03:56 +03:00 |
|
levlam
|
15520c5ddd
|
Move static functions out of FlatHashTable.
|
2022-03-09 17:00:22 +03:00 |
|
levlam
|
44b844eeeb
|
Rename is_key_empty to is_hash_table_key_empty.
|
2022-03-09 16:40:50 +03:00 |
|
levlam
|
8b897c7c5f
|
Move MapNode and SetNode to separate classes.
|
2022-03-09 16:29:47 +03:00 |
|
levlam
|
ea52727c21
|
Add FlatHashTable::create_iterator private function.
|
2022-03-09 15:44:14 +03:00 |
|
levlam
|
d8071f458e
|
Remove now unneeded identity helper functions.
|
2022-03-09 15:34:56 +03:00 |
|
levlam
|
5cda813bd9
|
Move control block back to FlatHashTable itself to avoid cache line sharing between control blocks of all big tables.
|
2022-03-09 15:17:29 +03:00 |
|
levlam
|
a59e6b8ffe
|
Add static_assert that flag in STORE_FLAG/PARSE_FLAG is bool.
|
2022-03-01 21:39:24 +03:00 |
|
levlam
|
f993bebc2f
|
Disable FlatHashTable for release.
|
2022-03-01 15:16:57 +03:00 |
|
levlam
|
1f300c50e0
|
DownloadManager fixes.
|
2022-02-28 18:25:07 +03:00 |
|
levlam
|
21a71e6441
|
Minor improvements.
|
2022-02-25 16:18:23 +03:00 |
|
levlam
|
c631c8c356
|
Slightly optimize FlatHashTable::resize.
|
2022-02-25 14:30:02 +03:00 |
|
levlam
|
9590cdd8d0
|
Optimize erase_node, part 2.
|
2022-02-25 14:27:38 +03:00 |
|
levlam
|
03a994e198
|
Optimize erase_node, part 1.
|
2022-02-25 13:53:13 +03:00 |
|
levlam
|
ef14369058
|
Store bucket_count in FlatHashTableInner.
|
2022-02-25 04:04:29 +03:00 |
|
levlam
|
01b884858d
|
Return the same begin() if hashtable wasn't changed.
|
2022-02-25 00:24:27 +03:00 |
|
levlam
|
a657cf6458
|
Use random begin() in HashTable.
|
2022-02-25 00:04:32 +03:00 |
|
levlam
|
f298d71c08
|
HashTable bug fixes.
|
2022-02-24 22:04:21 +03:00 |
|
levlam
|
ecb14f1bdd
|
Minore fixes.
|
2022-02-24 21:38:57 +03:00 |
|
levlam
|
35cf57eed8
|
Consistently use uint32 in FlatHashTable.
|
2022-02-23 22:51:43 +03:00 |
|
levlam
|
e1909b018e
|
Reduce size of an empty FlatHashTable.
|
2022-02-23 22:13:40 +03:00 |
|
levlam
|
3da16b4501
|
Use bucket_count() instead of nodes_.size().
|
2022-02-23 18:20:25 +03:00 |
|
Arseny Smirnov
|
e2c7601c2b
|
DownloadManager: draft
|
2022-02-23 19:34:26 +01:00 |
|
levlam
|
6f2a9270a3
|
Always try shrink after node erasure.
|
2022-02-23 18:05:56 +03:00 |
|
levlam
|
d090929249
|
Store end_ in iterator instead of map itself.
|
2022-02-23 17:41:11 +03:00 |
|
levlam
|
b307396628
|
Simplify FlatHashTable implementation.
|
2022-02-23 16:34:42 +03:00 |
|
levlam
|
73ade8cc43
|
Randomize hash value and optimize bucket calculation.
|
2022-02-23 16:27:19 +03:00 |
|
levlam
|
b3a784f4ba
|
Properly clear other hashmap after move.
|
2022-02-23 15:58:12 +03:00 |
|
levlam
|
5f5205ae6c
|
Remove unneeded return values from hashtable move-assignment operators.
|
2022-02-23 15:50:58 +03:00 |
|
levlam
|
c9c9a73499
|
Fix swap(fixed_vector) usages.
|
2022-02-21 05:49:59 +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
|
ae3854d97c
|
Various fixes.
|
2022-02-18 23:04:25 +03:00 |
|
levlam
|
b5cf85d6e2
|
Fix compilation error.
|
2022-02-18 15:15:58 +03:00 |
|
Arseny Smirnov
|
39934a7f9e
|
FlatHashMap: sse2 support
|
2022-02-18 00:47:58 +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
|
a11d37dd4c
|
FlatHashMap: fix CE
|
2022-02-11 18:11:17 +01:00 |
|
Arseny Smirnov
|
ecceb51881
|
FlatHashSet
|
2022-02-11 17:41:40 +01:00 |
|
Arseny Smirnov
|
1a3adc3ee7
|
FlatHashTable: bugfix
|
2022-02-10 22:44:40 +01:00 |
|
Arseny Smirnov
|
500c20f7ea
|
FlatHashMap: more benchmarks
|
2022-02-10 22:34:01 +01:00 |
|
levlam
|
b8ab910b81
|
Various improvements.
|
2022-02-10 23:01:28 +03:00 |
|
levlam
|
1a28bbd00c
|
Remove redundant checks from calc_bucket.
|
2022-02-10 18:30:03 +03: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
|
967cb9e8a5
|
Fix compilation error.
|
2022-02-09 18:41:38 +03:00 |
|
levlam
|
22ed61e1b7
|
More FlatHashMap usages.
|
2022-02-09 17:05:27 +03:00 |
|