FreeBasic
Главная
Вход
Регистрация
Четверг, 26.12.2024, 18:42Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 8 из 8
  • «
  • 1
  • 2
  • 6
  • 7
  • 8
Околоотладочная тема и выпуск пара
haavДата: Пятница, 15.04.2022, 12:51 | Сообщение # 106
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Цитата laser ()
И где скачать текущую версию FB для мака (Intel и ARM)?
Если это неофициальная и не поддерживаемая версия, можно не считать. PB тоже есть для амиги и PowerPC проца, но больше не поддерживается и их не считаю.


Так не считай , кто же тебе заставляет? Людям-то на это пофиалетово. Они не ждут сборок или оф. релизов , просто берут и портируют FB туда , где они хотят его видеть и используют как захотят.

Цитата laser ()
Где скачать сборку (IDE, компиль, отладчик и др.) под ARM линь? У тебя на форуме тока сборки для винды.
Опять все по принципу - сделай сам?
В PB все собрано. В лине достаточно распаковать архив куда-то и установить требуемые пакеты.


Стащил и установил компиль с оф. сайта , установил geany , gdb наверное уже в системе. Остальное необходимое (какие-то библиотеки) поставил так же из терминала.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
zamabuvaraeuДата: Пятница, 15.04.2022, 14:16 | Сообщение # 107
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline
Цитата laser ()
То есть предлагаешь останавливать поток до приема данных? Чем это лучше блокирующих сокетов?
Функция MsgWaitForMultipleObjectsEx не блокирует GUI, виндовые сообщения продолжают обрабатываться. Без всяких проверок по таймеру.
Цитата laser ()
Надо 1000 соединений, создашь 1000 потоков? Браво! Верх оптимизации!
Не надо, всё работает в одном потоке.
Цитата laser ()
Тут ты ошибаешься. Не все процессорное время в ядре можно посчитать по техническим причинам. Учитывается в основном юзермодное.
Во‐первых, в диспетчере задач есть галочка «Показать время ядра». Так это это будет видно.
Во-вторых, любая активность процессора раз в N наносекунд сразу же нагрузит процессор с повышением его температуры и гудением вентилятора.

Цитата laser ()
тока зачем? Чтобы сэкономить 0.0001% процессорного времени? Смысл?
Действительно, зачем делать правильно, когда можно делать тяп‐ляп.

Цитата laser ()
Прога повиснет в ReceiveNetworkData до приема заданного числа байт. Загрузка проца нулевая.
Ну вот видите, эта функция блокирует GUI. Поэтому вы или запускаете отдельный поток, или переходите в неблокирующий режим. а неблокирующий режим каждые 100 миллисекунд вхолостую дёргает диспетчер потоков в винде. Данных нет, но программа всё равно 10 раз в секунду занимается бессмысленной работой, которую можно избежать.

Цитата laser ()
А вот с этим не соглашусь. Вероятно проверки есть в ядре. Ты не можешь на 100% это отрицать или видел код функции MsgWaitForMultipleObjectsEx и точно знаешь как она работает?
Любая Wait‐функция в конечном итоге останавливает поток. То есть поток удаляется из очереди запланированных к работе, менеджер потоков не тратит на него время и ресурсы.
 
laserДата: Пятница, 15.04.2022, 21:05 | Сообщение # 108
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: -46
Статус: Offline
Цитата haav ()
Людям-то на это пофиалетово. Они не ждут сборок или оф. релизов , просто берут и портируют FB туда , где они хотят его видеть и используют как захотят.
Скажи честно скока ты знаешь людей юзающих FB способных на такое?
На калибри был запущен простейший код, или проект с GUI, сетью, БД, и др.? В первом случае, практического смысла порта нет.

Цитата haav ()
Стащил и установил компиль с оф. сайта , установил geany , gdb наверное уже в системе.
Это нерациональный и трудозатратный метод. Сгодится тока если нужно раз собрать приложение. На постоянно совершенно не подходит.

Цитата zamabuvaraeu ()
Во‐первых, в диспетчере задач есть галочка «Показать время ядра».
Нету такого. Стандартный диспетчер? ОС? Ты на 100% уверен что учитывается все время, включая прерывания? Скорее всего тока время с низким IRQL когда код ядра выполняется в контексте потока приложения.

Цитата zamabuvaraeu ()
Во-вторых, любая активность процессора раз в N наносекунд сразу же нагрузит процессор
Я же писал что в PB (читай юзермод) проверка наличия данных занимает меньше микросекунды. В ядре понадобится еще меньше времени. Оттого проц не сильно грузит.

Цитата zamabuvaraeu ()
Действительно, зачем делать правильно, когда можно делать тяп‐ляп.
Ты наверно не видел кода написанного по принципу отъе**сь. Вот то треш полный. А в PB сеть устроена вполне логично учитывая кроссплатформу.
Ты до сих пор не показал кроссплатформенного примера с асинхронными сокетами!

Цитата zamabuvaraeu ()
Ну вот видите, эта функция блокирует GUI. Поэтому вы или запускаете отдельный поток
Для сети другой поток обязателен. Потому что могут быть разные причины остановки выполнения кода, MessageBox к примеру. И все, данные не приняты!
 
zamabuvaraeuДата: Суббота, 16.04.2022, 07:03 | Сообщение # 109
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline
Цитата laser ()
Я же писал что в PB (читай юзермод) проверка наличия данных занимает меньше микросекунды. В ядре понадобится еще меньше времени. Оттого проц не сильно грузит.
Объясните, зачем нужно писать плохой код с этими проверками, если можно написать хороший код без этих проверок?

Добавлено (16.04.2022, 07:08)
---------------------------------------------

Цитата zamabuvaraeu ()
Для сети другой поток обязателен. Потому что могут быть разные причины остановки выполнения кода, MessageBox к примеру. И все, данные не приняты!
То есть вы игнорируете мои ответы, что MsgWaitForMultipleObjectsEx не блокирует GUI.

Добавлено (16.04.2022, 07:11)
---------------------------------------------
У меня программа работает в однопоточном режиме. Модальные диалоговые окна вроде MessageBox не блокируют сеть. И без всяких проверок данных по таймеру.

 
laserДата: Суббота, 16.04.2022, 11:05 | Сообщение # 110
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: -46
Статус: Offline
Цитата zamabuvaraeu ()
зачем нужно писать плохой код
Код нормальный.
Если хочешь чтобы я признал его не оптимальным, покажи пример асинхронных сокетов для винды линя и мака.

Цитата zamabuvaraeu ()
То есть вы игнорируете мои ответы, что MsgWaitForMultipleObjectsEx не блокирует GUI.
Затормозить основной поток может что угодно. Буфер переполнится и часть данных потеряются. Удачи с таким подходом.

Цитата zamabuvaraeu ()
У меня программа работает в однопоточном режиме.
Многопоточные не пишешь или стабильная работа не нужна?
 
zamabuvaraeuДата: Воскресенье, 17.04.2022, 00:01 | Сообщение # 111
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline
Цитата laser ()
Код нормальный.Если хочешь чтобы я признал его не оптимальным
Любой код, который дёргает процессор вхолостую — неоптимальный. Что и требовалось доказать.

Цитата laser ()
Затормозить основной поток может что угодно
Это постоянно делает операционная система, когда переключает потоки. Ничего страшного от этого не происходит.

Цитата laser ()
Буфер переполнится
Не переполнится если правильно указывать его длину.

Цитата laser ()
Многопоточные не пишешь или стабильная работа не нужна?
Для сервера использую пул потоков.
 
laserДата: Воскресенье, 17.04.2022, 12:58 | Сообщение # 112
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: -46
Статус: Offline
zamabuvaraeu, не нужно выдергивать фразу из контекста. Я совсем не это написал!
Ты упорно игнорируешь просьбу представить кроссплатформенный код с асинхронными сокетами. При этом также упорно утверждаешь что PB код не оптимален. Пока что утверждения голосновны. Чтобы доказать свою правоту, ты должен показать пример о котором я пишу. Ты на 100% уверен что на лине и маке возможен тот же подход что на винде? Не допускаешь что в PB наиболее оптимальный метод с учетом всех поддерживаемых платформ?
Если допускаешь, чего прикапываешься?
Если не допускаешь, правильный кроссплатформенный код встудию!
 
zamabuvaraeuДата: Воскресенье, 17.04.2022, 17:28 | Сообщение # 113
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline
Оставлю это вам в качестве домашнего задания. Подсказка: копайте в сторону epoll().
 
laserДата: Воскресенье, 17.04.2022, 19:23 | Сообщение # 114
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: -46
Статус: Offline
Критиковать можешь, а как дошло до дела, сразу в кусты? Значит слив засчитан.
 
zamabuvaraeuДата: Понедельник, 18.04.2022, 08:07 | Сообщение # 115
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline
Дошло до дела? Мне нет никакого дела до исправлений коммерческих продуктов.
 
laserДата: Вторник, 19.04.2022, 11:03 | Сообщение # 116
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: -46
Статус: Offline
Значит признаешь что с асинхронными сокетами все не так гладко в плане кроссплатформенности и ты не знаешь как на лине и маке сделать тоже что на винде? Тады слив защитан!
 
zamabuvaraeuДата: Пятница, 22.04.2022, 04:49 | Сообщение # 117
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline
laser, интересная у вас логика:

* если чего‐то нет (или вы не нашли) кроссплатформенного — это неправильно и применяться не должно;
* если что‐то не идёт с компилятором — это неправильно и применяться не должно
* гонять процессор вхолостую — это нормально

Мне нет никакого дела до решения за вас вашего домашнего задания для упомянутых вами линей и маков. И вам тоже нет до них дела, вы же говорили, что пишете исключительно под винду.
 
laserДата: Воскресенье, 24.04.2022, 20:21 | Сообщение # 118
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: -46
Статус: Offline
Цитата zamabuvaraeu ()
если чего‐то нет (или вы не нашли) кроссплатформенного — это неправильно и применяться не должно
Я такого не писал.
Ты прикопался к сетевой библе PB, аргументируя что она тратит много лишнего процессорного времени (0.7 микросекунд это очень много?), но совершенно не учитываешь что библа кроссплатформенная. Неужели не можешь понять что в библе PB наиболее оптимальный подход учитывая различия винды, линя и мака? Если не согласен - кроссплатформенную библу на асинхронных сокетах встудию!

Цитата zamabuvaraeu ()
если что‐то не идёт с компилятором — это неправильно и применяться не должно
Не нужно придумывать. Я не это писал и аргументировал свои ответы.

Цитата zamabuvaraeu ()
гонять процессор вхолостую — это нормально
Покажи библы на асинхронных сокетах для линя и мака. Тогда поговорим на эту тему.

Цитата zamabuvaraeu ()
Мне нет никакого дела до решения за вас
Я не просил что-то решать. Ты никак понять не можешь что подход винды не всегда годится на лине и маке, а функции библы должны быть идентичными для всех платформ.

Цитата zamabuvaraeu ()
И вам тоже нет до них дела, вы же говорили, что пишете исключительно под винду.
Большинство моих приложений для винды, но ты прикопался к библе PB, а она кроссплатформенная.
 
laserДата: Пятница, 23.12.2022, 18:37 | Сообщение # 119
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: -46
Статус: Offline
От администратора:

Насколько я помню , zamabuvaraeu держался в рамках обсуждения кодинга или около того и лично вас не цеплял. Вопросы его или еще чьих ориентаций оставим за рамками этого форума.
Что касается ваших прошлых постов в этом же духе , там у вас были обоюдные переходы на личности с DarkDemon , поэтому те посты оставил.
 
zamabuvaraeuДата: Понедельник, 26.12.2022, 19:56 | Сообщение # 120
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline
Вот что ещё обнаружил.

Про язык:

При выборе чисел оператор Select будет сравнивать только целые числа. А если вы подсунете ему Float, произойдёт обрезание дробной части.
Беззнаковые 64‐битные числа не поддерживаются.
Нельзя создать неинициализированную переменную.

Про IDE:

Несмотря на то, что IDE основана на том же движке, что и Notepad++ (а ведь Notepad++ всего лишь текстовый редактор с раскраской), она не умеет такую элементарную вещь, как одновременное отображение нескольких документов.
Средства отладчика вроде просмотра переменных лежат не во вкладках, а в отдельных плавающих окнах с флагом TopMost, которые постоянно загораживают код. Если вы решили переключиться на другое приложение по Alt+TAB, то эти окна будут загораживать ваши программы.
Когда вы набираете код, вам подсовывают всплывающий список с подсказками. Но выбрать из него списко по кнопке Enter нельзя, потому что для этой операции есть неочевидная горячая клавиша. Нужно идти в настройки и менять на общепринятое поведение.

Точки останова нельзя установить мышкой.
Точки останова не сохраняются между перезапусками IDE.
Отсутствует точка останова типа «точка ведения журнала». Вам придётся засорять код вставками Debug, чтобы вывести значение переменной в отладочное окно.
 
  • Страница 8 из 8
  • «
  • 1
  • 2
  • 6
  • 7
  • 8
Поиск: