Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: BagaBaga
Дата сообщения: 16.04.2014 08:21
Спасибо. Результат интересный.
1. При отключении синхронизации с stdio и привязки cin к cout "старый медленный" вариант оказался куда быстрее "старого быстрого" (с доп. буфером). Без этого он был в 5-6 раз медленнее.
2. При уравнивании шансов (т.е. при аналогичном отключении синхронизации и привязки в "старом быстром" варианте) получилось: вариант с буфером в 2-2.5 раза быстрее варианта с "прямым отправлением" в стандартный поток вывода.

Использованные манипуляции ускоряют программу в 8-10 раз (но соотношение между вариантами сохраняется, хотя отрыв и сокращается).
Автор: AndrMan
Дата сообщения: 16.04.2014 08:45
Если позволяет работа с буфером - лучше работать с буфером Вывод на экран - долгая операция. 2-2.5 раза - это не очень много Я так понимаю, что проверяется всё под Windows. Если я правильно помню, на Юникс всё значительно быстрее.
Автор: BagaBaga
Дата сообщения: 16.04.2014 21:40
Всё проверяется под Win7 (компилятор - gcc под него же). На экран ничего не выводится (хотя может - при желании). Просто программа читает со стандартного входа и выводит результат на стандартный вывод. При использовании - перенаправление потоков, вроде a.exe < file_in > file_out. Да и проще потом в скрипты оборачивать (или в конвейер).

Самое смешное, что буфер - небольшой. Всего 80 байт. После "тюнинга" с опциями cout эта разница в 2-2.5 раза не критична и ковыряться за ускорение "до последнего" на этой задаче практического смысле нет. Тут просто чистое любопытство.

Самое интересное, что при "тюнинге" основное ускорение происходит при отключении синхронизации с stdout. "Отвязка" cin от cout даёт совсем небольшой прирост .
Автор: Eminence
Дата сообщения: 19.04.2014 15:30
Доброго всем дня!
C помощью ATL сгенерировал COM-компонент. Создал интерфейс. Мне необходимо добавить метод, который возвращает строку. Каким должен быть входной параметр этого метода? Кто должен выделять память, приложение или COM-компонент? Может быть, нужно просто передать массив char по стандартным правилам передачи массивов в COM-объекты? Или есть другие пути?
И еще. Возможно ли из COM-объекта сразу получить массив строк, или необходимо делать методы, чтобы получать эти строки по очереди?
Заранее спасибо!
Автор: AndrMan
Дата сообщения: 20.04.2014 07:38
Eminence
Например, так
Автор: AlekXL
Дата сообщения: 02.05.2014 03:16
как известно, в С++ Builder 64-bit используется допиленный компанией абракадабра Clang.. В это году(думаю, в сентябре/октябре) обещают выкатить 32-разядный cpp компилятор на той же основе.
Но вот какая именно версия, насколько свежая то бишь, лежит в основе этого уникального(как бэ и нетучки сейчас другого рабочего тулчейна Clang на Windows) продукта?
есть ли родимчики, баги и несовместимости в оригинальном компиляторе, его milestone versions, исправленные недавно,чтобы оценить свежесть допиленного C++Builder' а?
Автор: Drubidon
Дата сообщения: 02.05.2014 03:42

Цитата:
обещают выкатить 32-разядный cpp компилятор на той же основе.

им бы еще x64 получше допилить, а то старый код от х32 без правок на x64 не всегда компилиться.
Автор: AlekXL
Дата сообщения: 02.05.2014 18:06

Цитата:
им бы еще x64 получше допилить, а то старый код от х32 без правок на x64 не всегда компилиться.

ну это нормально, пожалуй. Кроме того, после полного перехода на CLang никто и не вспомнит о старом глючном компиляторе, и о диалекте языка, к-й он поддерживал.
Билдер "славился" своим самым слабым компилятором, к-й чуть ли не хуже дельфи был. И -- внезапно, LLVM! Да еще с нативной и мощной библиотекой VCL(под венду ничего подобного нету)! Разрыв шаблона имхо.
Автор: Drubidon
Дата сообщения: 03.05.2014 04:12

Цитата:
Кроме того, после полного перехода на CLang никто и не вспомнит о старом глючном компиляторе, и о диалекте языка, к-й он поддерживал.

На него еще перейти надо. Если старый код без проблем скопилится на новом компиляторе, то все отлично. А вот если не скомпилится (что скорее всего), то вспомнят все и старый компилятор и разработчиков нового .
Хотя конечно нужно идти вперед, старый компилятор по своим возможностям давно устарел.
Автор: AlekXL
Дата сообщения: 03.05.2014 04:19

Цитата:
На него еще перейти надо.

в планах абракадабры на 2014 год... недолго осталось.

Автор: Drubidon
Дата сообщения: 03.05.2014 04:53
Под словом "перейти" я подразумевал, что весь код будут компилить на этом компиляторе. То что его выпустят это ничего еще не означает. Старый тоже оставят. Поэтому старые проекты которые сразу не скомпиляться в новом компиляторе многие будут компилить в старом.
AlekXL, вот у вас любой старый проект компилится под новым компилятором х64 ?
Автор: HNKTO
Дата сообщения: 03.05.2014 15:42
Подскажите какие-нибудь платформонезависимые функции преобразования кодировок WCHAR>UTF8>WCHAR
А ещё лучше полные или более полные аналоги форточных MultiByteToWideChar и WideCharToMultiByte
?
Автор: ne_viens
Дата сообщения: 03.05.2014 16:06
iconv()
Автор: Abs62
Дата сообщения: 03.05.2014 16:08
HNKTO
Тип wchar_t сам платформозависим. 2 байта под Win и 4 на линуксах.
Автор: HNKTO
Дата сообщения: 03.05.2014 17:46
Abs62, не знал.
Собственно я и в пользовании линуксом не гу-гу. Не говоря уже о писании программ под него.
Просто банальное желание делать так чтоб работало везде (с минимальными переделками) особенно "математики".
...
тогда снимаю вопрос т. к. я так понимаю лучше хранить текст в UTF8, и преобразовывать в специфические форматы непосредственно при выводе.

Спасибо.
Автор: Garrett
Дата сообщения: 03.05.2014 18:47
HNKTO
Храните текст в юникодных строках (L"xxx"), работайте с ними, и ничего перекодировать не надо.
Автор: HNKTO
Дата сообщения: 03.05.2014 19:47
Garrett, еслибы всё так просто.
Постановка задачи:
Есть HTML страница (получаемая из интернета) с текстом в кодировке UTF8
Она парсируется на "нужные" блоки текста, которые сохраняются.
а затем выводятся на экран.

соответственно даже принять формат L"xxx", который в windows генерит строку wchar_t символов, то всё равно надо перекодировать.
Автор: Devise1hp
Дата сообщения: 04.05.2014 12:36
Добрый день!
Есть код на С++
Проблема в том, что мне нужно тоже самое решение этой задачи, но только на Си (и желательно, чтобы все работало в Borland C++ builder

Добавлено:
Установил студию 2010, скачал проект в github. При сборке требует dxgurd.lib. Установил директ и подключил, но проблема не исчезла. Может кто знает как устранить.
Автор: ne_viens
Дата сообщения: 04.05.2014 13:36
Значит неправильно подключил. И $(DXSDK_DIR)Lib\x86 должен быть первым в списке, кстати.
Автор: Drubidon
Дата сообщения: 04.05.2014 22:51

Цитата:
но только на Си (и желательно, чтобы все работало в Borland C++ builder

С С++ переделать в Си. Без классов. Оригинально.
Автор: ne_viens
Дата сообщения: 05.05.2014 00:57
Удобно. Без классов в C переделать.
Автор: AndrMan
Дата сообщения: 06.05.2014 08:36
Devise1hp
Прочти здесь
Автор: YuriyRR
Дата сообщения: 09.05.2014 16:14
Как узнать bios date и bios version в LINUX? Подскажите куда копать?
Автор: vlary
Дата сообщения: 09.05.2014 17:32
YuriyRR В Гугле забанен давно и навсегда?
Запрос тут же дает в первой строчке:
Linux: Find Out BIOS Version Using a Command Line Option

Код: #sudo dmidecode
SMBIOS 2.3 present.
59 structures occupying 2536 bytes.
Table at 0x000FD4A0.

Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
Vendor: Intel Corporation
Version: SE7520JR22.86B.P.10.00.0087.120820051348
Release Date: 12/08/2005
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 2048 kB
Characteristics:
PCI is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
.........................
Автор: bomzzz
Дата сообщения: 18.05.2014 12:32
помогите пожалуйста у кого студия стоит - 2003, 2005, 2008. ставил каждую, обновлял и вытаскивал файлы для компилятора ассемблера, и ступил - не заархивировал файлы в запараолленные архивы (с 2010 только зажал). взял флешку чужую с вирусом и повредил все екзешники
надо по новой все качать ставить, фреймворки дурацкие, переустанавливать.

http://s1.ipicture.ru/uploads/20140518/TMowqsaH.png
http://s1.ipicture.ru/uploads/20140518/MuTzIB60.png
http://s1.ipicture.ru/uploads/20140518/Thv0k9aj.png
http://s1.ipicture.ru/uploads/20140518/u19crh11.png
http://s1.ipicture.ru/uploads/20140518/KNLTOLmT.png
Автор: ne_viens
Дата сообщения: 18.05.2014 13:03
MSVC2008: http://rghost.net/55339507
Автор: bomzzz
Дата сообщения: 18.05.2014 13:13
спасибо большое

http://s1.ipicture.ru/uploads/20140518/62qZ0Ubd.png
посмотри пожалуйста еще эти три дллки они где то в общих папках лежат в студии
Автор: ne_viens
Дата сообщения: 18.05.2014 13:26
http://rghost.net/55341481
Автор: bomzzz
Дата сообщения: 18.05.2014 13:28
Автор: bomzzz
Дата сообщения: 18.05.2014 18:04
ne_viens
а откуда yasm.exe в папке? он официально теперь поддерживается?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.