Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для wapster
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 17

Нужен совет: оптимизация кода, увеличение скорости работы скрипта

05.06.2016, 21:45. Показов 779. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Имеется код выводящий из массива названия регионов РФ с указанием буквы.
Получается что-то вроде такого:

А
Алтайский край
Адыгея республика
Б
Брянская область
В
Владимирская область
Воронежская область
---------------------------------------------------------
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
$letters = array( 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 
                        'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я' 
                      );
 
$regions = array( 
           'Алтайский край', 'Адыгея республика', 'Брянская область', 'Владимирская область', 
                   'Воронежская область', 'Курганская область', 'Ямало-Ненецкий автономный округ' 
           );
 
$countRegions = count( $regions );
 
 
foreach ( $letters as $letter ) {
    echo "<h3>$letter</h3>";
    for ( $i = 0; $i < $countRegions; $i++ ) {
        $firstLetter = mb_substr( $regions[$i], 0, 1 );
        if ( $firstLetter == $letter ) {
            echo "$regions[$i]<br>";
        }
    }
}


Вопрос знатокам: как можно оптимизировать код, чтобы увеличить производительность скрипта.

На 33 буквах и ~90 регионах это конечно не заметно, но что будет, если эти цифры возрастут до нескольких десятков тысяч.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2016, 21:45
Ответы с готовыми решениями:

Методы повышения скорости работы скрипта
Какие факторы негативно влияют на скорость работы скрипта и какие способы повышения вы используйте?

Оптимизация работы скрипта
Здравствуйте. У меня скрипт, который работает с WEB-службой. Но работает он уж очень медленно =/ Вот пример обращения к службе: ...

Оптимизация или увеличение скорости работы программы
Доброго времени суток, программисты! Буквально на днях столкнулся с проблемой, связанной с перегрузкой &quot;дельфина&quot; при...

5
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
05.06.2016, 21:53
Цитата Сообщение от wapster Посмотреть сообщение
но что будет, если эти цифры возрастут до нескольких десятков тысяч.
Пожалей пользователей, не выводи 10000 регионов.
0
 Аватар для wapster
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 17
05.06.2016, 21:55  [ТС]
Да, сразу не буду. Буду мучить медленно...

А есть что по существу?
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
05.06.2016, 22:23
Цитата Сообщение от wapster Посмотреть сообщение
названия регионов РФ
Цитата Сообщение от wapster Посмотреть сообщение
если эти цифры возрастут до нескольких десятков тысяч

Не по теме:

Хех, дожить бы...

0
> /dev/null
 Аватар для Блеф
286 / 119 / 86
Регистрация: 14.05.2014
Сообщений: 767
05.06.2016, 23:36
wapster, А вы собираетесь хранить несколько десятков тысяч значений в одном массиве?
0
 Аватар для wapster
1 / 1 / 1
Регистрация: 13.06.2015
Сообщений: 17
05.06.2016, 23:41  [ТС]
Не важно как хранятся данные. Важно - как можно улучшить скрипт.
Смотрите пожалуйста только код.

Данная задача простая, но могу (и хочу) столкнуться со сложными (большими, объемными) задачами.
Поэтому я хочу знать - как правильно писать код с точки зрения скорости его работы.

Вот, например, подсчет количества элементов в массивае вынес за пределы цикла, чтобы каждый раз не вычислять одно и тоже значение.
Кликните здесь для просмотра всего текста
PHP
1
2
3
$countRegions = count( $regions );
...
for ( $i = 0; $i < $countRegions; $i++ ) ...
вместо
PHP
1
 for ( $i = 0; $i < count($regions); $i++ )...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2016, 23:41
Помогаю со студенческими работами здесь

Оптимизация кода скрипта для работы с архивами
Оптимизация скрипта, для работы с архивами / О форуме и сайтах Есть скрипт, текст ниже. Что он должен делать: 1. выбирать файлы...

Увеличение скорости работы бд
Хотелось бы узнать, какие есть методы по увеличению скорости работы бд? или хотя бы просто &quot;как&quot; лучше создавать архитектуру, для...

Увеличение скорости работы программы
Всем привет ребят. Пишу программу для разложения числа(на определенные множители). Надо работать с большими числами используя библиотеку...

Оптимизация скорости кода
Необходимо(дать совет по оптимизации) оптимизировать код, чтоб меньше времени занимало на обработку данных. Подробнее о задаче можно...

Увеличение скорости работы программы (димнамически создаются PictureBox)
Написал маленькую программу где димнамически создаются PictureBox и вних заполняется определенная каритнка. При запуске заполнение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru