NHibernate частичное обновление

Обычно C# и Java могут быть столь же быстрыми или быстрее, потому что JIT-компилятор - компилятор, который компилирует Ваш IL в первый раз, когда он выполнился - может сделать оптимизацию, что скомпилированная программа C++ не может, потому что он может запросить машину. Это может определить, является ли машиной Intel или AMD; Pentium 4, Базовое Соло или Базовый Duo; или если поддержки SSE4, и т.д.

А, программа C++ должна компилироваться заранее обычно со смешанной оптимизацией так, чтобы это работало прилично хорошо на всех машинах, но не оптимизирован так, как это могло быть для единственной конфигурации (т.е. процессор, система команд, другие аппаратные средства).

Дополнительно определенные функции языка позволяют компилятору в C# и Java делать предположения о Вашем коде, который позволяет ему оптимизировать определенные части далеко, которые просто не безопасны для компилятора C/C++ сделать. Когда у Вас есть доступ к указателям существует большая оптимизация, которая просто не безопасна.

Также Java и C# могут сделать выделения "кучи" более эффективно, чем C++, потому что слой абстракции между сборщиком "мусора" и Вашим кодом позволяет ему делать все свое сжатие "кучи" сразу (довольно дорогая операция).

Теперь я не могу говорить за Java на этом следующем вопросе, но я знаю, что C#, например, на самом деле удалит методы и вызовы метода, когда он будет знать, что тело метода пусто. И это будет использовать этот вид логики всюду по Вашему коду.

Поэтому, как Вы видите, существует много причин, почему определенный C# или реализации Java будут быстрее.

Теперь это все упомянутая, определенная оптимизация может быть сделана в C++, который сдует что-либо, что Вы могли сделать с C#, особенно в графической области и каждый раз, когда Вы близко к аппаратным средствам. Указатели делают чудеса здесь.

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

Один сторона Java, @Swati указывает на хорошую статью:

https://www.ibm.com/developerworks/library/j-jtp09275

8
задан bleevo 17 August 2009 в 00:28
поделиться

3 ответа

_cancelled должен быть изменчивым . (если вы не выбрали блокировку)

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

Кроме того, я думаю, что операции чтения / записи _cancelled являются атомарными :

Раздел 12.6.6 спецификации CLI гласит: "Соответствующий интерфейс командной строки должен гарантировать, что доступ для чтения и записи к правильному выровненные ячейки памяти не больше чем исходный размер слова атомарен когда все записи обращаются к При рисовании пунктирных линий вы можете изменять расстояние между штрихами, чтобы убедиться, что у вас никогда не будет частичных четырехугольников на конечных точках. Это может визуально отвлекать, так как расстояние будет регулироваться в зависимости от длины сегмента.

редактировать:

А, картинка помогает. Я предполагаю, что, поскольку это на iPhone, вы получаете серию точек, из которых линии между ними дают приемлемую кривую. Если это так, использование примитивов сплайнов / кривых, вероятно, излишне. Я бы, вероятно, подошел к рисованию линий, как показано, просто путем рисования четырехугольников в каждой точке данных, которая находится на заданном расстоянии от последней точки данных.

Алгоритм выглядит примерно так:

  1. Нарисовать четырехугольник на первой точке данных (с соответствующим поворотом)
  2. Перемещайтесь по списку точек, пока не «Я @ 190d11Excel не удаляет начальные пробелы. Вы получите нежелательные пробелы в заголовках и полях данных. Хуже того, ", который должен« защищать »этот разрыв строки в третьем столбце, будет проигнорирован, потому что он находится не в начале поля.

    Если у вас есть символы, отличные от ASCII (закодированные в UTF-8) в файле у вас должна быть спецификация UTF-8 (3 байта, шестнадцатеричный EF BB BF ) в начале файла. В противном случае Excel будет интерпретировать данные в соответствии с вашей локалью по умолчанию. кодировка (например, cp1252) вместо utf-8, и ваши символы, отличные от ASCII, будут удалены.

    Следующие комментарии относятся к Excel 2003, 2007 и 2013; не тестировалось в Excel 2000

    Если вы открываете файл двойным -щелкнув его имя в проводнике Windows, все работает нормально.

    Если открыть его из Excel, результаты будут разными: обязательно будет по 50% каждая. В значение может меняться в зависимости от их содержание. Мне также нужны все предметы в эти ячейки независимо от того, сколько строк должны выстроиться так же, как они будет в таблице ».

Вышеупомянутое невозможно в кроссбраузерном режиме без использования таблицы (вы можете смоделировать макет таблицы с помощью CSS:« display: table », но это не работает в IE6 или IE7) .

Я бы посоветовал вам думать немного по-другому при разработке с использованием CSS вместо таблиц, невозможно просто заменить «tr» и «td» на «div» и заставить все волшебным образом работать, как раньше. Я предлагаю вам установите ширину нижних «ячеек» и используйте один из вариантов, которые вам дали выше.

Надеюсь, что это поможет!

Так, например, если у вас есть

<mx:Canvas><mx:Label id="myLabel" /></mx:Canvas>

, вы можете получить к нему доступ по его id в качестве имени переменной:

myLabel.text = "Hello world!";

Дайте мне знать, если вам нужны дополнительные разъяснения. Если вы спрашиваете не об этом, не стесняйтесь комментировать, и я сделаю еще один удар.

С уважением, Вам нужно будет вернуть несколько частей информации для вашего ответа. К счастью, вы можете легко сделать это с помощью JSON, и jQuery автоматически обработает его за вас, если вы укажете тип ответа json. Объект, который вы добавляете в свою функцию обратного вызова ajax, будет содержать все необходимые вам фрагменты данных в виде различных свойств.

Я бы посоветовал выработать привычку возвращать код состояния «успех» или «неудача» при каждом вызове ajax. , и набор ошибок с ним. См. Эту замечательную запись в блоге для получения дополнительной информации о том, что я имею в виду.

Причина этого в том, что вызов ajax всегда будет в основном «успешным», если только сервер действительно не сможет обработать запрос и не вернет код состояния HTTP сбоя. Если результат запроса похож на ошибку проверки, Если у вас сложные объединения, иногда лучше иметь представление, чтобы при любом доступе соединения всегда были правильными, а разработчикам не приходилось запоминать все таблицы, которые им могут понадобиться. Обычно это может быть для финансового приложения, где чрезвычайно важно, чтобы все финансовые отчеты основывались на одном и том же наборе данных.

Если у вас есть пользователи, которым вы хотите ограничить записи, которые они могут когда-либо видеть, вы можете использовать представление , предоставьте им доступ только к представлению, а не к базовым таблицам, а затем запросите представление

Похоже, отчеты Crystal предпочитают использовать представления для сохраненных процессов, поэтому люди, которые много пишут отчеты, как правило, используют много представлений

] Представления также очень полезны при рефакторинге баз данных. Часто вы можете скрыть изменение, чтобы старый код не увидел его, создав представление.

$("#source").appendTo("#destination");

В качестве альтернативы вы можете использовать функцию prependTo (которая добавляет в начало элемента):

$("#source").prependTo("#destination");

Пример:

 $ ("# appendTo"). Click (function () {$ ("#moveMeIntoMain"). appendTo ($ ("# main"));}); $ ("# prependTo"). click (function () {$ ("# moveMeIntoMain"). prependTo ($ ("# main"));}); 
 #main {border: 2px сплошной синий; минимальная высота: 100 пикселей; } .moveMeIntoMain {граница: 1px сплошной красный; } 
  
main < / div>
переместить меня на главную
2
ответ дан 6 December 2019 в 00:58
поделиться

http://www.hibernate.org/hib_docs/nhibernate/html/mapping.html

динамическое обновление (необязательно, по умолчанию false): указывает, что UPDATE SQL должен быть сгенерирован во время выполнения и содержат только те столбцы, значения изменились.

Поместите динамическое обновление для класса в HBM.

var m = new Model() { ID = 1 };
m = session.Update(m); //attach m to the session.
m.Name = "test";
session.Save(m);
0
ответ дан 6 December 2019 в 00:58
поделиться

То, что говорит Стефан, похоже на то, что вам нужно. Имейте в виду, что это действительно крайний случай, и вы должны быть довольны полной загрузкой вашей сущности, если только у вас нет проблем со сверхвысокой производительностью.

Если вы просто не хотите попадать в базу данных - попробуйте использовать кеширование - Кэш сущностей очень прост и эффективен.

Если ваша сущность огромна, т. е. она содержит большой двоичный объект или что-то в этом роде, подумайте о разделении ее на две части (со многими к одному, чтобы вы могли использовать отложенную загрузку).

1
ответ дан 6 December 2019 в 00:58
поделиться
Другие вопросы по тегам:

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