|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Тут надо читать книжки по архитектуре Linux. Я точно всех типов не помню но кажется pipes, sockets, и файловые дескрипторы - это один и тот-же тип ресурса с точки зрения Linux. Почему их надо ограничивать? Ну наверное потому что это не просто целое число или указатель. Это какая-то структура в памяти которая имеет размеры (очень актуально для TCP). И просто огульное использование открытых одновременно файлов или сокетов может скушать память. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:40 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Кроме того сам PG-драйвер тоже на каждый сеанс может что-то аллоцировать. Переменные сеанса. Буфера для батчинга. Тоесть не только TCP сокет но и еще некое неизвестное X умножается на 1000 в твоейм кейсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:42 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton, Да, тестирую, коннекты, судя по всему занимают открытые файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 14:45 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Сталкнулся еще с такой проблемой: Код: plaintext 1.
При компиляции для Linux и Windows - это 1 сек и 0.001 сек сотвественно. Причем в виндоус sleep c большой буквы - Sleep. Подскажите, может быть есть какая-то универсальная задержка и под вин и под линукс? Если нет, то как это обходить? Переменную объявлять что за ОС и в зависимости от нее ставить sleep(1) или Sleep(1000) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 14:51 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Делай как тут https://stackoverflow.com/questions/6649936/c-compiling-on-windows-and-linux-ifdef-switch Ну если с паузой ты выкрутился то с мультипоточкой такой фокус не прокатит. Слишком много всего переделать надо будет. Лучше делай 2 версии софта под 2 платформы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 14:53 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Делай как тут https://stackoverflow.com/questions/6649936/c-compiling-on-windows-and-linux-ifdef-switch Ну если с паузой ты выкрутился то с мультипоточкой такой фокус не прокатит. Слишком много всего переделать надо будет. Лучше делай 2 версии софта под 2 платформы. Понял, спасибо :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:00 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
От sleep() в секундах мало пользы, обычно надо покороче паузы. Для этого в линуксе есть nanosleep() Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:08 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Задача же вроде бы была "сделать чтобы работало быстрее", нет?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:24 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T От sleep() в секундах мало пользы, обычно надо покороче паузы. Для этого в линуксе есть nanosleep() Код: plaintext 1. 2. 3. 4. 5. 6.
Да, я его тоже использую, вот так: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:24 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Задача же вроде бы была "сделать чтобы работало быстрее", нет?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:30 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Делай как тут https://stackoverflow.com/questions/6649936/c-compiling-on-windows-and-linux-ifdef-switch Ну если с паузой ты выкрутился то с мультипоточкой такой фокус не прокатит. Слишком много всего переделать надо будет. Лучше делай 2 версии софта под 2 платформы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:39 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Siemargl mayton Делай как тут https://stackoverflow.com/questions/6649936/c-compiling-on-windows-and-linux-ifdef-switch Ну если с паузой ты выкрутился то с мультипоточкой такой фокус не прокатит. Слишком много всего переделать надо будет. Лучше делай 2 версии софта под 2 платформы. Ну ОК. Просто не видел чтоб кто-то под Windows затаскивал такие порты. Я не против тогда. Пускай берет pthreads. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:45 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Я лично сделал наоборот: портировал _beginthreadex() на линух. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:47 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а как ты реализовал Код: plaintext 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 15:52 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Siemargl пропущено... pthreads переносима Ну ОК. Просто не видел чтоб кто-то под Windows затаскивал такие порты. Я не против тогда. Пускай берет pthreads. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 16:00 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Да, я его тоже использую, вот так: Код: plaintext 1.
Это С++ конструкция такая или Си? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 16:14 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Я лично сделал наоборот: портировал _beginthreadex() на линух. И в чём заключалось такое портирование? Просто как я понимаю _beginthreadex() настраивает Си-рантайм для MSVC. Как вы это портировали не очень понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 16:16 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
maytonа как ты реализовалEnterCriticalSection Это я не эмулировал, использую обёртку: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 16:16 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
petravИ в чём заключалось такое портирование? Так же как с остальной пачкой используемого мною Win32 API: я открыл спецификацию на MSDN и написал процедуру, реализующую этот функционал на линухе. Мне сугубо всё равно что оно творит "унутре" себя на винде пока я могу просто скомпилировать исходник своего приложения и получить тот же результат. PS: В случае с критической секцией выше мне просто пока лень разбираться с футексами чтобы эмулировать busy wait. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 16:25 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
А был-ли бенчмарк который сравнивает вот эти две реализации? На коротких потоках (от 100-200мс). Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 16:26 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
maytonА был-ли бенчмарк который сравнивает вот эти две реализации? Не было. В моём приложении нет коротких потоков. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 16:30 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton А был-ли бенчмарк который сравнивает вот эти две реализации? На коротких потоках (от 100-200мс). Код: plaintext 1. 2. 3. 4. 5. 6. 7.
А что означает «короткий поток»? Время жизни потока небольшое? Странная терминология. И как от времени жизни потока может зависеть время блокирования мьютекса? Теоретически, в определённых ситуация критическая секция выигрывает, потому что в начале использует спин лок. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 16:36 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Ну да. Про 200 мс это я конечно загнул. Надо чтоб поток хоть какую-то полезную задачу сделал. Ну вобщем вопрос был в части энерго-эффективности EnterCriticalSection, особенно когда попыток много на единицу времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 17:30 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
maytonНу вобщем вопрос был в части энерго-эффективности EnterCriticalSection, особенно когда попыток много на единицу времени. Да, именно для этого в линухе футексы и комментарий в моём исходнике. Когда придёт время для оптимизации - буду копаться. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 17:59 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton А был-ли бенчмарк который сравнивает вот эти две реализации? На коротких потоках (от 100-200мс). Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Если не путаю линуксовый мутекс не тоже самое что виндовый мутекс, он менее функционален, его в другой процесс не передашь. Поэтому он по реализации ближе к критической сессии, может блокироваться без переключения в режим ядра, за счет этого быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 19:39 |
|
|
start [/forum/topic.php?fid=57&msg=40132548&tid=2017122]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 275ms |
total: | 420ms |
0 / 0 |