powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что не так с кодом
14 сообщений из 14, страница 1 из 1
Что не так с кодом
    #39756533
IPmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго вечера Есть такой метод
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    public static string GetAbsolutePathByRelative(string relative)
        {
            string applicatiionUrl = string.Concat(HttpContext.Current.Request.Url.Authority, 
                HttpContext.Current.Request.ApplicationPath);
            if (!applicatiionUrl.EndsWith("/"))
            {
                applicatiionUrl = string.Format("{0}/", applicatiionUrl); 
            }
            if (relative.StartsWith("../"))
            {
                relative = relative.Replace("../", "");
            }
            return string.Format("{0}://{1}{2}", HttpContext.Current.Request.Url.Scheme, applicatiionUrl, relative);
        }



если мы удаляем код в методе то запрос в Web прилежении работает в три раза быстрее. может кто подсказать что тут не так?
...
Рейтинг: 0 / 0
Что не так с кодом
    #39756539
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локализуй, какая строка тормозит.
И что с потокобезопасностью, обеспечивается вызывающим кодом?
...
Рейтинг: 0 / 0
Что не так с кодом
    #39756578
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IPmen,


в три раза быстрее - это сколько миллисекунд? Как измеряли? Профилировать пробовали?
...
Рейтинг: 0 / 0
Что не так с кодом
    #39756614
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IPmen,

присоединяюсь к рекомендациям skyANA, а также

замените

Код: c#
1.
GetAbsolutePathByRelative(string relative)



на

Код: c#
1.
GetAbsolutePathByRelative(Uri requestUrl, string applicationPath, string relative)



т.е. уберите зависимость от HttpContext, протестируйте на скорость, увидите, что проблем в логике нет.


вообще, зависимость в методах от HttpContext.Current -- это максимально плохо, хуже некуда.
...
Рейтинг: 0 / 0
Что не так с кодом
    #39756666
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если удалить весь код в методе, как он работать будет? ))
...
Рейтинг: 0 / 0
Что не так с кодом
    #39756670
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЕсли удалить весь код в методе, как он работать будет? ))

хороший вопрос лично я постеснялся его задать
...
Рейтинг: 0 / 0
Что не так с кодом
    #39756673
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЕсли удалить весь код в методе, как он работать будет? ))
Никак, т.к. будет ошибка компиляции - у метода объявлен возвращаемый тип. Не был бы - компилятор выкинул бы его нафиг, и все его вызовы вместе с ним.
...
Рейтинг: 0 / 0
Что не так с кодом
    #39756712
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

А у ТС, он работает, причём в 3 раза быстрее )
...
Рейтинг: 0 / 0
Что не так с кодом
    #39757224
256k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это можно оптимизнуть:
applicatiionUrl = string.Format("{0}/", applicatiionUrl);
->
applicatiionUrl += "/";

Будет быстрее!
...
Рейтинг: 0 / 0
Что не так с кодом
    #39757235
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kВот это можно оптимизнуть:
applicatiionUrl = string.Format("{0}/", applicatiionUrl);
->
applicatiionUrl += "/";

Будет быстрее!

Код: c#
1.
2.
var baseUri = new Uri("https://www.sample.com");
var resultUri = new Uri(baseUri, "foo/bar.html");
...
Рейтинг: 0 / 0
Что не так с кодом
    #39757244
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IPmen,

Почитайте про replace вот здесь . И еще вот здесь .
...
Рейтинг: 0 / 0
Что не так с кодом
    #39757245
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
256kВот это можно оптимизнуть:
applicatiionUrl = string.Format("{0}/", applicatiionUrl);
->
applicatiionUrl += "/";

Будет быстрее!
Это совсем не то, что нужно, судя по методу.
...
Рейтинг: 0 / 0
Что не так с кодом
    #39757246
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes256kВот это можно оптимизнуть:
applicatiionUrl = string.Format("{0}/", applicatiionUrl);
->
applicatiionUrl += "/";

Будет быстрее!

Код: c#
1.
2.
var baseUri = new Uri("https://www.sample.com");
var resultUri = new Uri(baseUri, "foo/bar.html");


И это тоже не то.
...
Рейтинг: 0 / 0
Что не так с кодом
    #39757354
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, ну тогда возможно автору стоит обратить взор в сторону класса UriBuilder, там есть и авторизация и схема и всё остальное. Сформировать Uri и вернуть его в виде строки. Но не думаю, что это будет на много быстрее, а проблема именно в том.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что не так с кодом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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