Змінюй хід війни! Допомагай ЗСУ!

шарпы и длл на с+

🔴 21:30 Повітряна тривога в Харків.обл.
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #25
я ж написал... когда размер матрицы 120х7
можиш через контрол+с проверить

Логика твоего кода моему разуму неподвласта. Там в процессе создаются какие-то гигантские массивы. В ф-ции CreateOneMatrix, стотыщ элементов, где-то на 5-6вызов. Зачем столько - я не знаю.
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #26
Логика твоего кода моему разуму неподвласта. Там в процессе создаются какие-то гигантские массивы. В ф-ции CreateOneMatrix, стотыщ элементов, где-то на 5-6вызов. Зачем столько - я не знаю.

я тоже не знаю... за чем столько... но главное то что оно работает... когда ехе, но не работает когда длл, переписать на шарпы нет ни желания ни времени...
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #27
я тоже не знаю... за чем столько... но главное то что оно работает... когда ехе, но не работает когда длл, переписать на шарпы нет ни желания ни времени...

у меня exe и оно не работает. "программа явно делает какую-то нездоровую хуйню"
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #28
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #29
прога все считат верно
почему ехе не работает, какая причина?

Потому что крутится в ниибических циклах пробегая массивы с миллионами элементов. Это не нормально, я уверен там где-то ошибка. Код говно, глобальные переменные, понять что-то невозможно.
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #30
Потому что крутится в ниибических циклах пробегая массивы с миллионами элементов. Это не нормально, я уверен там где-то ошибка. Код говно, глобальные переменные, понять что-то невозможно.

спорить не буду:D
но хотелось бы понять почему ехе работает норм, а длл нет:confused:
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #31
спорить не буду:D
но хотелось бы понять почему ехе работает норм, а длл нет:confused:

Когда такие непонятки, ответ голобально один - выход за границы массива, не инициализированные переменные и т.д. подобные ошибки ДНК :)
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #32
Когда такие непонятки, ответ голобально один - выход за границы массива, не инициализированные переменные и т.д. подобные ошибки ДНК :)

да но тогда ехе не должен работать и тоже виснуть... или я не прав???
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #33
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #34
Останнє редагування:
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #35
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #37
нашол причину... это моя невнимательность...
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #38
из приведенных урывков точно не ясно что именно происходит, но судя по названию метода, он по всей видимости асинхронный, что усложняет задачу.
Если передаешь managed массив в асинхронный вызов unmanaged коду, то память выделенную под этот массив нужно зафиксировать, чтобы GC ее не дефрагментировал ненароком...
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #39
из приведенных урывков точно не ясно что именно происходит, но судя по названию метода, он по всей видимости асинхронный, что усложняет задачу.
Если передаешь managed массив в асинхронный вызов unmanaged коду, то память выделенную под этот массив нужно зафиксировать, чтобы GC ее не дефрагментировал ненароком...

можно подробней и если можно, то еще сылки на инфу:)
 
  • 🔴 21:30 Повітряна тривога в Харків.обл.
  • #40
можно подробней и если можно, то еще сылки на инфу:)

поподробнее - курите ключевое слово языка fixed и особенности работы Garbage Collector, ссылки найти можно в гугле, теория неплохо описана у Рихтера например.
Реализовывать ручную фиксацию (без блока fixed) не рекомендую, это нехорошо, т.к. по сути это будет unmanaged код на managed языке, т.к. фиксированную память GC сам не освободит, нужно четко все отслеживать и вовремя освобождать, чтобы не было memory leaks и нехватки памяти (из-за сильной фрагментации кучи). Однако если это всеже нужно сделать (к сожалению при взаимодействии с unmanaged кодом такие ситуации изредка бывают).
Если необходимость все-же действительно есть и fixed никак помочь не может, тогда курите класс GCHandle и его методы Alloc() (в сочетании с GCHandleType.Pinned) и AddrOfPinnedObject()... в этом случе это то что вам нужно ;)

Однако прежде чем фиксировать память, настоятельно рекомендую почитать про особенности дефрагментации кучи у Рихтера, и оценить наколько это будет опасно... ;)
Эффективность выделения памяти и сборка мусора сильно ухудшаются, не говоря уж о том что зафиксированный объект нужно обязательно не забыть освободить, т.к. GC такой памятью управлять не может по определению.
 
Останнє редагування:
Назад
Зверху Знизу