|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Уткъ Добавил проверку выделилась ли память при аллокации, надеюсь верно написал: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Правильно, но учти что при срабатывании ранее выделенная память у тебя не освободится, а будет хз в каком состоянии и по хорошему при такой сработке надо совсем завершать работу всего приложения. Это у меня в main выполняется, я думал что return 1; в main завершает работу приложения, протестирую. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 13:52 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Я так подозреваю это был пример работы с либой libpq на С. Я так понял это либа для работы из С напрямую с PostgreSQL . Погуглил, примеры на С везде, как понимаю отсюда и родилось требование использовать С. . Так точно! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 13:53 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Есть такое, с массивом не думал что будет так сложно. Планировал массив создать за час максимум ) большинство С/С++ newcomers умирают на указателях. Потом они всплывают в районе C#/Delphi/1C e.t.c. А поскольку в С строки и указатели - принципиально неотделимы - то вот приходится получать такой высокий порог вхождения. А ты на что расчитывал? УткъТут довольно большая нагрузка ожидается. Нагруженные системы (условно) делятся на 2 категории. - optimized by throughput - by response time И в зависимости от этого рода нагрузки в системе крутятся разные гайки и разные выбираются языки и технологии. Предполагаю что твоя задача с базами связанная с репликациями или с ETL. Если это так то они попадают в первую категорию. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 13:58 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Это у меня в main выполняется, я думал что return 1; в main завершает работу приложения, протестирую. Правильно думал, если это в main() то будет завершение. Если в другом месте, то просто вернешься на уровень вверх. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 14:24 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Нагруженные системы (условно) делятся на 2 категории. - optimized by throughput - by response time И в зависимости от этого рода нагрузки в системе крутятся разные гайки и разные выбираются языки и технологии. Предполагаю что твоя задача с базами связанная с репликациями или с ETL. Если это так то они попадают в первую категорию. Тут немного другая категория. Главная задача не держать коннекты в БД и чтобы ничего не зависло. Т.е. главное это надежность и прозрачность для конечных пользоватлей. А высокая нагрузка планируется просто из-за большого количества узлов. Т.е. тут нет такого что аптайм 24\7 требуется, просто запуск по расписанию с минималным воздействием на узлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 14:33 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Уткъ Это у меня в main выполняется, я думал что return 1; в main завершает работу приложения, протестирую. Правильно думал, если это в main() то будет завершение. Если в другом месте, то просто вернешься на уровень вверх. Ага, понял, значит надо exit использовать, чтоб везде сработал ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 14:34 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Тут немного другая категория. Главная задача не держать коннекты в БД и чтобы ничего не зависло. Т.е. главное это надежность и прозрачность для конечных пользоватлей. А высокая нагрузка планируется просто из-за большого количества узлов. Т.е. тут нет такого что аптайм 24\7 требуется, просто запуск по расписанию с минималным воздействием на узлы. Сокетный пул? А по какому принципу вы будете "отрубать" коннекты? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 14:40 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Уткъ Тут немного другая категория. Главная задача не держать коннекты в БД и чтобы ничего не зависло. Т.е. главное это надежность и прозрачность для конечных пользоватлей. А высокая нагрузка планируется просто из-за большого количества узлов. Т.е. тут нет такого что аптайм 24\7 требуется, просто запуск по расписанию с минималным воздействием на узлы. Сокетный пул? А по какому принципу вы будете "отрубать" коннекты? Таймаут в соединении, а потом kill -9 приложения. Думаю как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 14:49 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Капец вы вандалы ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 14:55 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Для многомерных массивов не надо заморачиваться с отдельными массивами для размерностей, т.к. память все-равно одномерная. Достаточно сделать явное преобразование многомерного индекса в одномерный. Считается это элементарно. Компилятор неявно тоже самое делает для многомерных массивов. Например у тебя трехмерный массив размерностью [K,M,N] тогда всего ячеек будет K*M*N, такого размера и объявляешь массив для хранения. Формула для получения индекса ячейки [k,m,n] такая: Код: plaintext 1.
Исходник Код: plaintext 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. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 15:22 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Добавил проверку выделилась ли память при аллокации, надеюсь верно написал: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 15:43 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Для многомерных массивов не надо заморачиваться с отдельными массивами для размерностей, т.к. память все-равно одномерная. Достаточно сделать явное преобразование многомерного индекса в одномерный. Считается это элементарно. Компилятор неявно тоже самое делает для многомерных массивов. Например у тебя трехмерный массив размерностью [K,M,N] тогда всего ячеек будет K*M*N, такого размера и объявляешь массив для хранения. Формула для получения индекса ячейки [k,m,n] такая: Код: plaintext 1.
Исходник Код: plaintext 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. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.
Да, я про подобное слышал вот в этой лекции: [youtube=https://www.youtube.com/watch?v=MQBV3PMx5sg] Такое сделаю обязательно. В общем, протестил, массив из данных базы на 7 тыс строк создается нормально, пару сек. Сейчас буду массово цеплять libpq и запросы к массиву, как с ними разберусь буду оптимизировать по памяти ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 17:14 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
White Owl Уткъ Добавил проверку выделилась ли память при аллокации, надеюсь верно написал: Код: plaintext 1.
Компилятор не ругнулся на такое ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 17:15 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ В общем, протестил, массив из данных базы на 7 тыс строк создается нормально, пару сек. Улыбнуло. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 17:48 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
maytonУлыбнуло. Самое смешное, что это всё в общем-то и не нужно, а скорость при использовании COPY ещё и повысится. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 18:08 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
У меня всё время крутится в голове что у Постгреса есть какой-то коробочный пул. Помню читал. Лень искать в документации. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 18:16 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Пул и даже балансер есть, но для задачи автора ни один из них не нужен. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 18:35 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Убийство сессий? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 18:39 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Улыбнуло. Тысячи баз и софт на коленке писаный, забавно все там ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 21:32 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Убийство сессий? Вы будете смеятся, но некоторые сессии не убиваются, особенно это обидно когда она создана dblink-ом. Тогда приходится рестартовать постгресс, по другому никак, иначе сессия висит вечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2022, 23:43 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Я так понимаю что мы всё равно не поймем. В топике решается проблема XY. Мы здесь знаем С++. И не знаем зачем вам нужно стрелять по сессиям Postgres. Но я догадываюсь. Возможно у вас текут ресурсы? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2022, 00:01 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ White Owl пропущено... Пассивный и активный залоги смешал в кучу. Компилятор не ругнулся на такое ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2022, 20:28 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Модератор: Удалил лишнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2022, 00:36 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ ... Я по умолчанию запускаю gcc file.c -o file наверняка там какая-то опции запуска есть, которые повышают блидетьность. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2022, 13:33 |
|
|
start [/forum/topic.php?fid=57&msg=40129944&tid=2017122]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 452ms |
0 / 0 |