ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #5331  
Старый 24.05.2010, 11:13
Byte_
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме:
351188

Репутация: 65
По умолчанию

Цитата:
Сообщение от rudvil  
Есть ли смысл для оптимизации, передавать аргументы функции через указатель, например
Код:
void show_msg(std::string& msg) {
  std::cout << msg;
}
если учитывать что эта функция вызывается очень часто и с средним кол. символов в "msg" - 500
Т.е. насколько я понимаю если не передавать через указатель, то при каждом вызове будет происходить копия этого "msg" и последующий его вывод... что мне впринципе нафиг не надо, тогда уже лучше везде прописывать аргументы через ссылки.
Ну не везде, но во всяком случае там - где я точно знаю что в функ. с ним никаких операция кроме чтения не будет.
Есть ли смысл с этим заморачиваться?
на сколько я понимаю, тут выгоднее написать
Код:
inline void show_msg(std::string msg) {std::cout << msg;}
 

  #5332  
Старый 24.05.2010, 11:18
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от Byte_  
на сколько я понимаю, тут выгоднее написать
Код:
inline void show_msg(std::string msg) {std::cout << msg;}
Да, спасибо это вариант, но ведь копирование аргумента по прежнему будет?
 

  #5333  
Старый 24.05.2010, 11:21
Byte_
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме:
351188

Репутация: 65
По умолчанию

Цитата:
Сообщение от rudvil  
Да, спасибо это вариант, но ведь копирование аргумента по прежнему будет?
если я правильно понимаю механизм inline функций в C, то нет... в такой функции тело заменяет вызов при компиляции. но следует учесть, что inline может быть не воспринят компилятором (это рекомендация а не условия для компилятора).
 

  #5334  
Старый 24.05.2010, 11:27
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от Byte_  
если я правильно понимаю механизм inline функций в C, то нет... в такой функции тело заменяет вызов при компиляции. но следует учесть, что inline может быть не воспринят компилятором (это рекомендация а не условия для компилятора).
Хмм, ещё раз спасибо - попробую и так - и так, проведу пару тестов, посмотрим где компилятору(в плане оптимизации) больше понравится =]
 

  #5335  
Старый 24.05.2010, 11:39
Byte_
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме:
351188

Репутация: 65
По умолчанию

Цитата:
Сообщение от rudvil  
Хмм, ещё раз спасибо - попробую и так - и так, проведу пару тестов, посмотрим где компилятору(в плане оптимизации) больше понравится =]
напиши потом. заинтриговал =)
 

  #5336  
Старый 24.05.2010, 12:14
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от Byte_  
напиши потом. заинтриговал =)
Забавно получилось, как говорится не знаешь не трогай ^^
результаты в мс.
Цитата:
Сообщение от без оптимизации  
1174
752
751
752
748
1043
1024
781
752
751
Цитата:
Сообщение от через ссылку  
925
750
753
748
756
774
746
770
759
750
Цитата:
Сообщение от заинлайненая  
959
764
772
757
757
770
761
771
758
808
Вывод следующий - с такой мелкой оптимизации смысла нет заморачиваться, компилятор всё сделает за тебя.
 

  #5337  
Старый 24.05.2010, 12:43
Byte_
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме:
351188

Репутация: 65
По умолчанию

rudvil, скорее всего он не воспринял inline из-за использования std...
судя по всему способ 1 = способу 3
 

  #5338  
Старый 24.05.2010, 12:49
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от Byte_  
rudvil, скорее всего он не воспринял inline из-за использования std...
судя по всему способ 1 = способу 3
Как бы там ни было если уж оптимизировать, то оптимизировать нужно скорее общий алгоритм программы, чем всякую мелочь =]
 

  #5339  
Старый 24.05.2010, 12:52
STLcRash
Новичок
Регистрация: 04.06.2009
Сообщений: 7
Провел на форуме:
15180

Репутация: 0
По умолчанию

подскажите как после очистки кэша IE
Цитата:
var lpEntryInfo: PInternetCacheEntryInfo; hCacheDir: LongWord; dwEntrySize: LongWord; dwLastError: LongWord; begin dwEntrySize := 0; FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize); GetMem(lpEntryInfo, dwEntrySize); hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize); if (hCacheDir <> 0) then DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName ); FreeMem(lpEntryInfo); repeat dwEntrySize := 0; FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize); dwLastError := GetLastError(); if (GetLastError = ERROR_INSUFFICIENT_BUFFER) then begin GetMem(lpEntryInfo, dwEntrySize); if (FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize)) then DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName ); FreeMem(lpEntryInfo); end; until (dwLastError = ERROR_NO_MORE_ITEMS);
добавить в уже отчищенный кэш куки из edit1.text
 

  #5340  
Старый 24.05.2010, 13:59
BrainDeaD
Постоянный
Регистрация: 09.06.2005
Сообщений: 531
Провел на форуме:
3516666

Репутация: 439


По умолчанию

чувак, это ж не с/с++. ты либо темой ошибся, либо языком.
cookie записываются в файл. для этого тебе надо знать содержание и место хранения cookies.
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ