Почему находятся страницы ASP.NET настолько медленнее на localhost, чем на рабочем сервере

Чтобы добавить к ответу Реми, код будет выглядеть примерно так

import 'package:flutter/material.dart';

abstract class BlocBase {
  void dispose();
}

class BlocProvider<T extends BlocBase> extends StatefulWidget {
  BlocProvider({
    Key key,
    @required this.child,
    @required this.bloc,
  }): super(key: key);

  final T bloc;
  final Widget child;

  @override
  _BlocProviderState<T> createState() => _BlocProviderState<T>();

  static T of<T extends BlocBase>(BuildContext context){
    final type = _typeOf<BlocProvider<T>>();
    BlocProvider<T> provider = context.ancestorWidgetOfExactType(type);
    return provider.bloc;
  }

  static Type _typeOf<T>() => T;
}

class _BlocProviderState<T> extends State<BlocProvider<BlocBase>>{

  @override
  void dispose(){
    widget.bloc.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context){
    return widget.child;
  }
}

class Bloc implements BlocBase {

  final StreamController<bool> _changeColor = PublishSubject<bool>();

  Function(bool) get changeColour => _changeColor.sink.add;

  Stream<bool> get colour => _changeColor.stream;

  @override
  void dispose() {
    _changeColor.close();
  }

}


class _HomePageState extends State<HomePage> {
  Bloc bloc;
  var colour = false;

  @override
  void initState() {
    super.initState();
    bloc = BlocProvider.of<Bloc>(context);
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        RaisedButton(
          onPressed: () {
            if (colour) {
              bloc.changeColour(false);
              colour = false;
            } else {
              bloc.changeColour(true);
              colour = true;
            }
          },
          child: Text("Change colour"),
        ),
        StreamBuilder(
          builder: (context, snapshot) {
            var bool = snapshot?.data ?? false;
            return Text(
              "First text",
              style: TextStyle(color: bool ? Colors.red : Colors.green),
            );
          },
          stream: bloc?.colour,
        ),
      ],
    );
  }

  @override
  void dispose() {
    print("Bloc is disposed");
    bloc.dispose();
    super.dispose();
  }
}
10
задан Morten Bergfall 4 March 2009 в 12:04
поделиться

10 ответов

Хорошо... после обновления моей машины (Q9550@3.4ghz, 1 ТБ> 100mb/s ищет диск) я не вижу рядом ни с каким различием даже, в то время как наличие этого компьютера делает работы (SQL-сервер MS, IIS) по сравнению с той же страницей, размещенной в GoDaddy. При задавании моего inital вопроса я имел несколько меньшую машину и сравнил его с моими выделенными серверами фирм. Таким образом, anwer к вопросу в основном: они не. Спасибо за все Ваши ответы, хотя!

3
ответ дан 3 December 2019 в 20:44
поделиться

Если Вы используете FireFox или Safari, и Вы находитесь на Windows Vista затем, необходимо отключить версию 6 IP, так как это смешивает с Vista в сочетании с WebDev и FireFox/Safari...

В типе FF в about:config в строке поиска фильтр для "IPv6" и набора включил ко ЛЖИ!

Это - ошибка с IPv6 в Windows Vista и является очень вероятным кандидатом на Ваши проблемы...

8
ответ дан 3 December 2019 в 20:44
поделиться

Существует по крайней мере две причины этого:

  • Во-первых, Ваш локальный сервер, вероятно, выполняет страницы в режиме отладки с присоединенным отладчиком. Это заставляет все работать медленнее

  • Во-вторых, каждый раз Вы изменяете свой код страниц, или Вы перезапускаете свой сервер, все страницы должны быть перекомпилированы, и это занимает время.

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

3
ответ дан 3 December 2019 в 20:44
поделиться

Можно также проверить, пытается ли сайт получить доступ к недоступному содержанию (недоступные URL) от машины разработки. У меня была эта проблема пару раз прежде.

1
ответ дан 3 December 2019 в 20:44
поделиться

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

Первая вещь посмотреть на была бы тем, что Вы работаете на своем dev поле: антивирусные или программные брандмауэры могут быть уничтожителем для этих вещей, и можно хотеть протестировать с отключенным.

1
ответ дан 3 December 2019 в 20:44
поделиться

Я удивлен, что никто еще не упомянул жесткие диски. Жесткий диск часто является типичным узким местом в системе, и настольные жесткие диски часто намного медленнее, чем сервер (SCSI) диски. Настольная рабочяя станция могла также иметь больше процессов, работающих, которые все используют диск одновременно, тогда как машины сервера более оптимизированы для выполнения критических серверных процессов только. Но конечно, все это зависит от того, что точно делает машина.

1
ответ дан 3 December 2019 в 20:44
поделиться

Вы на самом деле выполняете это через IIS7, или он действительно пробегает Сервер разработки ASP.NET Visual Studio? Если последний, хорошо..., который тут же является огромной причиной. Сервер разработки ASP.NET оптимизирован, чтобы отладить приложения, не выполнить их быстро.

Другая половина проблемы - то, что Вы на самом деле не сказали нам спецификации своей машине, только что "все в порядке аппаратные средства", не обычно метрика когда дело доходит до компьютера. Vista действительно сосет некоторые ресурсы, обоих с ее новым менеджером по оформлению (для Аэро Стеклянного рабочего стола) и ее тенденция предварительно загрузить обычно запускаемые приложения в RAM.

Это также кажется, что Вы могли бы выполнять сервер базы данных от своего рабочего стола также, который сосет вниз больше ресурсов, что машины сервера не будут, так как у них, скорее всего, был бы (a) отдельный сервер (серверы) баз данных.

1
ответ дан 3 December 2019 в 20:44
поделиться

Вы полагали, что это может быть из-за кэширования? т.е. страницы на рабочем сервере кэшируются, и страницы на localhost, не кэшируются.

Я также соглашаюсь с terjetyl, возможно, что Ваш localhost не может найти связанный файл (например, исходный файл JavaScript), Ваш брандмауэр мог блокировать их....

0
ответ дан 3 December 2019 в 20:44
поделиться

ЕСЛИ будут вещи, сохраненные на сервере, к которому должно получить доступ приложение, то это значительно замедлит вещи - да, я видел места, где был рабочий сервер, который разместил единственную систему баз данных, доступную целой компании, и для производства и для разработки.

0
ответ дан 3 December 2019 в 20:44
поделиться

Маленький миллион вещей находится в игре: более быстрая сеть; лучший сервер БД, работающий в течение долгого времени и имеющий все запросы, уже выполненные прежде;..., возможно, происходит из-за Vista :)

0
ответ дан 3 December 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: