@ProCxx

Страница 2204 из 2477
Серж
16.07.2018
13:16:25
любому понятно, что парень пишет какой-то драйвер

Alexander
16.07.2018
13:16:29
если ты использешь, а сайд-эффекта не будет, то компилтяор тоже выкинет, если не дурачок

Крис
16.07.2018
13:16:34
смотря как используешь.
И то верно, хотя еще проще наверное волатайлом

Alexander
16.07.2018
13:16:36
Google
Серж
16.07.2018
13:16:47
а "a" - это отмапленная в память какая-то часть железяки

Alexander
16.07.2018
13:17:40
я для красоты всегда вывод пишу в консоль - его компилятор не дропнет (за некоторыми исключениями)

Серж
16.07.2018
13:17:54
cout в драйвере не лучшая идея, лучше cerr - он не буферизирует!

Юра Незнанов
16.07.2018
13:19:12
Серж
16.07.2018
13:19:30
я kprintf писал и работало!

int main() { register int a=0; unsigned long d = GetTickCount(); for(register int i=0;i<2000000000;i++) { a++; } DWORD ff = GetTickCount(); cout<<ff-d<<endl; return 0; }
Примерно 50% модулей ядра которые я видел были написаны в этом стиле (т.е. 2 из 4) unsigned long d = GetTickCount(); ... DWORD ff = GetTickCount();

Юра Незнанов
16.07.2018
13:22:51
ну только не тиккаунты конечно - это ведь винапи, а KeQuerySystemTime какой-нибудь

Max
16.07.2018
13:43:36
guys, гляньте вопрос плиз: https://toster.ru/q/546604

Юра Незнанов
16.07.2018
13:49:51
а есть какие-нибудь читы для статической линковки в qtcreator?? чтобы без пересборки среды...

как-нить можно после получения екзешника, ссылающегося на дллки впихнуть в этот екзешник эти самые дллки (.lib ки)

Почему-то вспомнилось. https://habr.com/post/342002/
ахахахахахах, я почитал... кайф статья! ???

yuri
16.07.2018
14:06:29
Юра Незнанов
16.07.2018
14:10:19
пока Qt не соберешь с флагом -static, либы будут бесполезны.
сам кьют... я знаю, но там наверное муторно

Google
yuri
16.07.2018
14:11:20
Пересборка Qt — процесс на полдня. Деталей не скажу, мануал на работе. Скажу только, что весь проект был в вижуал-студии, и вручную подключались все препроцессоры к исходным файлам.

Юра Незнанов
16.07.2018
14:11:23
А для чего тебе статическая линковка?
я хочу чтобы в кьюте делались программы, которые не требуют дллки, чтобы можно было переносить спокойно

Anton
16.07.2018
14:12:23
я хочу чтобы в кьюте делались программы, которые не требуют дллки, чтобы можно было переносить спокойно
ну, окей. но серьёзно, проще паковать прогу в какой нибудь самораспаковывающийся архив, есть нужно одн файлом таскать)

yuri
16.07.2018
14:13:06
ну, окей. но серьёзно, проще паковать прогу в какой нибудь самораспаковывающийся архив, есть нужно одн файлом таскать)
Человек, десктопный клиент телеграма на Qt написан, и слинкован статически. Всем нравится.

Anton
16.07.2018
14:13:56
Человек, десктопный клиент телеграма на Qt написан, и слинкован статически. Всем нравится.
Я не спорю, что так можно. Просто если задача - показать прогу преподу или между своими компами таскать - смысла в статик. линковке нету

Юра Незнанов
16.07.2018
14:17:47
а вот для тех, кто занимался гуишкой серьезно... Qt - хорошая либа?.. Как лучше гуи делать в дизайнере или ручками?

Alexander Alprog
16.07.2018
14:21:32
Сложно сказать.

Серж
16.07.2018
14:21:41
вы можете готовые скачать, даже на винде, ставьте msys2 и через pacman качаете пакеты qt5-static

Alexander Alprog
16.07.2018
14:21:41
Есть виджеты, есть — QML

Я предпочитаю виджетами долбить. Но это тесная интеграция кода и визуала.

По идее, если работаешь с дизайнером и хочется отвязаться от конкретного представления, то лучше qml.

Серж
16.07.2018
14:23:57
https://wiki.qt.io/MSYS2

Alexander Alprog
16.07.2018
14:25:23
Игорь
16.07.2018
14:27:11
О мои глаза!
Давай протру!

Юра Незнанов
16.07.2018
14:27:54
О мои глаза!
ну я же написал читы, я то понимаю что нормальных способов, кроме пересборки всей среды нет\

Серж
16.07.2018
14:28:38
через msys без пересборки qt см. выше

Ilia
16.07.2018
14:28:41
Юра, иди учись.

Серж
16.07.2018
14:28:41
на винде

Google
Серж
16.07.2018
14:28:42
статик

Alexander Alprog
16.07.2018
14:28:50
а зачем вообще статик линковку делать?

есть какие-то причины помимо эстетических?

Ilia
16.07.2018
14:29:06
Да не за чем, в том и прикол

Серж
16.07.2018
14:29:29
статик стартует быстрее

Юра Незнанов
16.07.2018
14:30:10
Да не за чем, в том и прикол
стоп, я что обосрался?.. статик линковка - это ведь значит что дллки не нужны?

Ilia
16.07.2018
14:30:11
Просто ламера полагают, что так размер программы будет меньше, стартовать она будет быстрее, а работать будет дольше... :-)

Серж
16.07.2018
14:30:11
ну и dll hell не страшен (?)

Ilia
16.07.2018
14:30:39
Серж
16.07.2018
14:31:19
в интернете так пишут, проверять я это конечно же не стал

Никита
16.07.2018
14:31:49
при статик линковке доступнo link time optimizations

Серж
16.07.2018
14:31:53
теоретически не надо подставлять адреса внешних функций

ну да, lto может бинарь меньше сделать, но я в том же интернете видел сообщения что с lto qt глючит на форумах того же qt

Никита
16.07.2018
14:33:15
оно и ускорение может дать хорошее

но проблемы со сборкой бывают, да

Серж
16.07.2018
14:33:36
ну и там лицензия lgpl, так что при статической линковке как я понимаю ты должен помимо исполняемого файла предоставить объектники, для пересборки с новой версией qt

Ilia
16.07.2018
14:34:58
Ребята, давайте прекратим пустой и дешёвый трёп. А то придут люди в чат, и подумают чертечто...

Дед Пегас
16.07.2018
14:35:43
(Сорян за оффтоп: Alprog это не тот самый Alprog с gamedev.ru?)

Alexander Alprog
16.07.2018
14:35:53
Тот самый

Google
Дед Пегас
16.07.2018
14:36:22
Прикольно)

Alexander Alprog
16.07.2018
14:36:50
(меня ещё кто-то помнит - это тоже прикольно)

Alexey
16.07.2018
15:29:32
а имеет ли право компилятор c++ как-то оптимизировать выражения с double? то есть например x*y*c + z*c свести к (x*y+z)*c ? Ведь по факту ответ может получиться другой.

Ignat
16.07.2018
15:30:31
в большинстве случаев не имеет как раз поэтому

Alexander
16.07.2018
15:30:37
а имеет ли право компилятор c++ как-то оптимизировать выражения с double? то есть например x*y*c + z*c свести к (x*y+z)*c ? Ведь по факту ответ может получиться другой.
да, но только с флагом -ffast-math или аналогичными у других компиляторов. У ICC там конфигурируется достаточно тонко

если без флага, то не имеет

Alexey
16.07.2018
15:31:12
а, т.е. стандарт запрещает, но есть флаг в реализаии некоторых компиляторов, где ты явным образом разрешаешь?

Alexey
16.07.2018
15:31:36
спасибо

Alexander
16.07.2018
15:31:51
ну как бы Стандарт не запрещате такие оптимизации, там просто сказано, что операции с float-point реализщованы согласно IEEE какой-то номер

Alexey
16.07.2018
15:33:51
в с++ не сказано про IEEE. сказано в си (то есть там это обязательно по IEEE теперь).

гм. в icc похоже -ffast-math вшит по умолчанию.

Руслан
16.07.2018
15:56:57
Друзья, а можно краткий в пару предложений ликбез о смартпойнтерах в многопотчном окружении: трейдофф выходит равный атомикам? Это самый оптимальный способ управления в случае создания и удаления в хипе большого количества обьектов, используемых в многих потоках без создания пулла переизпользования таких объектов? Как взгугольнуть сравнение с отложенной сборкой мусора? Или это к новичкам?

Интересует в контексте внезапно возникшего вопроса в голове о категорическом нежелании питоновского сообщества встраивать ARC/GC и избавления от GIL даже в каком-нибудь форке интерпритатора. Медленно, говорят, и не понимаю, как так ведь в плюсах смарты- тот же ARC только руками. Я правильно понимаю?

Ilia
16.07.2018
16:15:56
Google
Max
16.07.2018
16:19:53
)))

Andrey
16.07.2018
16:20:59
Вообще-то, это очень хороший вопрос. Да, в JVM и .NET предпочли чисто GC гибридной схеме reference counting + GC, чтобы не платить стоимость атомарной операцией при каждом копировании ссылочного объекта. Я сталкивался, с тем что из-за false sharing объекта (созданного через make_shared) и его счетчика ссылок программа замедлялась.

Ilia
16.07.2018
16:22:00
Python просто тупо самый медленный из всех существующих нынче языков.

Руслан
16.07.2018
16:22:11
В питоне референс каунтинг, у каждого обьекта внутри есть счетчик ссылок. Ок. Многоточность и атомики: если ты хочешь считать внутри обьекта количество активных ссылок на него, то для этого прийдется использовать атомики ибо этот счетчик - общий ресурс. Нет? ARC - automatic reference counting, objc/swift. Компайлер расставляет вызовы повышения и понижения счетчиков сам. Смартпойнтеры - суть для того же, только счетчик в объекте смартпойнтера, а не самих обьектах, в отличии от арц. Нет? Питон и GIL - не знаю, как пояснить. Неразрывно идут под ручку, ибо в питоне тот же подсчет ссылок внутри обьекта, но из-за лока на выполнение в одной лишь треде одновременно подсчет происходит без атомарных операций. (Тогда тут уже плавать пошли). Нет?

Ilia
16.07.2018
16:23:45
В питоне референс каунтинг, у каждого обьекта внутри есть счетчик ссылок. Ок. Многоточность и атомики: если ты хочешь считать внутри обьекта количество активных ссылок на него, то для этого прийдется использовать атомики ибо этот счетчик - общий ресурс. Нет? ARC - automatic reference counting, objc/swift. Компайлер расставляет вызовы повышения и понижения счетчиков сам. Смартпойнтеры - суть для того же, только счетчик в объекте смартпойнтера, а не самих обьектах, в отличии от арц. Нет? Питон и GIL - не знаю, как пояснить. Неразрывно идут под ручку, ибо в питоне тот же подсчет ссылок внутри обьекта, но из-за лока на выполнение в одной лишь треде одновременно подсчет происходит без атомарных операций. (Тогда тут уже плавать пошли). Нет?
0) Ок. Многоточность и атомики: если ты хочешь считать внутри обьекта количество активных ссылок на него, то для этого прийдется использовать атомики ибо этот счетчик - общий ресурс. Нет? Ответ -- НЕТ. Если ты хочешь считать ссылки в многопоточном окружении -- то да.

Andrey
16.07.2018
16:24:48
Из-за этого, например, запретили CoW в std::string. Но если нужно именно шарить, а не перемещать - то какие варианты?
Иметь вариант shared_ptr с не атомарным счетчиком ссылок. Большинство объектов все равно не thread-safe и при работе с ними все равно придется выполнять какую-то синхронизацию.

Руслан
16.07.2018
16:26:01
2) https://en.m.wikipedia.org/wiki/Automatic_Reference_Counting

Ilia
16.07.2018
16:26:34
В питоне референс каунтинг, у каждого обьекта внутри есть счетчик ссылок. Ок. Многоточность и атомики: если ты хочешь считать внутри обьекта количество активных ссылок на него, то для этого прийдется использовать атомики ибо этот счетчик - общий ресурс. Нет? ARC - automatic reference counting, objc/swift. Компайлер расставляет вызовы повышения и понижения счетчиков сам. Смартпойнтеры - суть для того же, только счетчик в объекте смартпойнтера, а не самих обьектах, в отличии от арц. Нет? Питон и GIL - не знаю, как пояснить. Неразрывно идут под ручку, ибо в питоне тот же подсчет ссылок внутри обьекта, но из-за лока на выполнение в одной лишь треде одновременно подсчет происходит без атомарных операций. (Тогда тут уже плавать пошли). Нет?
Питон и GIL - не знаю, как пояснить. Неразрывно идут под ручку, ибо в питоне тот же подсчет ссылок внутри обьекта, но из-за лока на выполнение в одной лишь треде одновременно подсчет происходит без атомарных операций. (Тогда тут уже плавать пошли). Нет? Как это связано с многопоточностью всё ?

Руслан
16.07.2018
16:26:36
std::shared_ptr не даёт гарантию работы в многопоточном окружении.
Вот видимо по этому к новичкам. Я думал там атомики

Так, а что в итоге в плюсах используют для этого в многопоточном окружении, если sharedptr без атомиков?

Ignat
16.07.2018
16:30:16
посылка ложна

Страница 2204 из 2477