powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что на вскидку эффективнее?
6 сообщений из 6, страница 1 из 1
Что на вскидку эффективнее?
    #37129811
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а) 2 000 операций перераспределения памяти + 2 000 операций копирования памяти общим объемом 1 Мб (т.е. прибавления к строке подстрок из другой строки)

или же

б) 1000 (или даже существенно меньше) операций реаллокации + 1000 операций копирования, но общим объемом 15 Мб (т.е. вырезание из одной и той же строки ненужных подстрок) ("существенно меньше" - это если менеджер памяти производит реалокации не при каждом уменьшении длины строки)

?
...
Рейтинг: 0 / 0
Что на вскидку эффективнее?
    #37129861
Автор:
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничего не понял. Вроде по отдельности слова понятные, а вместе какая-то каша.
Без [псевдо]кода не разберусь.
Но больше всего не понял - неужели так сложно запрограммировать оба варианта и проверить, если зудит? clock() из time.h и GetTickCount() из winapi в помощь
...
Рейтинг: 0 / 0
Что на вскидку эффективнее?
    #37129939
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил
На $php

Оказалось, что вариант б) процентов на 20 быстрее. Т.е. при равномерном распределении не нужных кусков в строке, эффективнее вырезать из большой строки ненужные куски функцией $s1 = substr_replace($s1, '', pos, size) (с вытекающим из этого на порядок бОльшим объемом копирования памяти - первый раз так вообще почти вся строка мувается, вырезая небольшой кусочек где-то в начале, потом меньше, меньше и т.д.) чем складывать при помощи $s2 .= substr($s1, pos, size) нужные куски в другую строку.
...
Рейтинг: 0 / 0
Что на вскидку эффективнее?
    #37129955
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonПроверил
На $php

Оказалось, что вариант б) процентов на 20 быстрее. Т.е. при равномерном распределении не нужных кусков в строке, эффективнее вырезать из большой строки ненужные куски функцией $s1 = substr_replace($s1, '', pos, size) (с вытекающим из этого на порядок бОльшим объемом копирования памяти - первый раз так вообще почти вся строка мувается, вырезая небольшой кусочек где-то в начале, потом меньше, меньше и т.д.) чем складывать при помощи $s2 .= substr($s1, pos, size) нужные куски в другую строку.

Ура, первый раз в жизни увидел ПХП-ника задумывающегося об эффективности кода. А то мне все рассказывают, что ихнее время дороже компьютерного.
...
Рейтинг: 0 / 0
Что на вскидку эффективнее?
    #37130803
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNУра, первый раз в жизни увидел ПХП-ника задумывающегося об эффективности кода. А то мне все рассказывают, что ихнее время дороже компьютерного.
Так я и не php-шник (в смысле разработчика web- и db- интерфейсов на клевых фреймворках). На c++ и Дельфи вырос, а временами реализую нетипичные для php и js задачи. Ибо вот те php-шники, которые имелись ввиду в рассказах, как раз и не берутся. А мне, чем заковыристее и нетипичнее, тем интереснее. Монотонно собирать интернет-магазины и визитки на готовых движках - не мое.
...
Рейтинг: 0 / 0
Что на вскидку эффективнее?
    #37134185
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Менеджер памяти нормально вообще не очень склонен производить реаллокацию при уменьшении длины строки. Но совершенно очевидно, что быстрее будет пробежать по 15Мб, перетаскивая нужные части "к началу", а потом один раз уменьшить длину.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что на вскидку эффективнее?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]