Биты и байты.

Биты и байты.

пятница, 8 мая 2015 г.

Краткий справочник по C#

Операторы C#

В переменных типа значения хранятся данные, а в переменных ссылочного типа хранятся ссылки на фактические данные. 
Ссылочные типы также называются объектами. 

Типы значений состоят из двух основных категорий:
Структуры делятся на следующие категории:
Для объявления ссылочных типов используются следующие ключевые слова:
В C# также предусмотрены следующие встроенные ссылочные типы:
Начиная с версии Visual C# 3.0 объявляемые в области метода переменные могут иметь неявный тип var. 
Локальная переменная с неявным типом имеет строгую типизацию, как если бы тип был задан явно, только тип определяет компилятор. 
Следующие два объявления i функционально являются эквивалентами:
var i = 10; // implicitly typed
int i = 10; //explicitly typed
 
do, for, foreach, in, while

Оператор if
bool condition = true;
if (condition)
{
    Console.WriteLine("The variable is set to true.");
}
else
{
    Console.WriteLine("The variable is set to false.");
}

Оператор switch 
int caseSwitch = 1;
switch (caseSwitch)
{
    case 1:
        Console.WriteLine("Case 1");
        break;
    case 2:
        Console.WriteLine("Case 2");
        break;
    default:
        Console.WriteLine("Default case");
        break;
}

Цикл for
for (int i = 1; i <= 5; i++)
{
   Console.WriteLine(i);
}
 
Цикл foreach
int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
foreach (int element in fibarray)
{
    System.Console.WriteLine(element);
}
System.Console.WriteLine();

В следующей таблице представлен список операторов C#, сгруппированных в порядке приоритета. 
Операторы в каждой группе имеют одинаковый приоритет.

Категория оператора
Операторы
Основные
Унарные
Мультипликативные
Аддитивные
Сдвиг
Относительные и тестирующие тип
Равенство
Логическое И
Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ

Логическое ИЛИ
Условное И
Условное ИЛИ
Поддержка значения NULL
Условный оператор
Присвоение и лямбда-выражение


среда, 8 апреля 2015 г.

Оптимизация производительности SQL Server 2012. Эпизод 1

 Оптимизация производительности обычно  выполняется по следующим характеристикам
  • Загрузка процессора
  • Использование памяти
  • Попадание в кэш
  • Дисковая подсистема
  • Оптимизация запросов
   Для  памяти  действует правило чем больше тем лучше,. Когда ее начинает не хватать повод 
   проверить чем же она забита. Об этом подробнее ниже.

    Управление памятью SQL Server.


Memory manager (ММ) является основным элементом, который управляет распределением памяти в SQL сервере. Данный компонент автоматически распределяет доступную SQL серверу память, снижая необходимость ручной настройки. После загрузки SQL ММ определяет первоначальный объем распределенной памяти и далее по мере изменения нагрузки динамически резервирует или освобождает оперативную память. Таким образом, ММ управляет взаимодействием SQL сервера с операционной системы в контексте управления памятью.
Основные комноненты:

1. Memory Clerks (Интерфейс, используемый потребителями для управления памятью, каждый потребитель имеет один или несколько клерков памяти ,используется для распределения, освобождения  и мониторинга использования памяти, каждый клерк связан с брокером  ,  sys.dm_os_memory_clerks)

2. Memory Objects (Кучи памяти, которые используют интерфейс клерков памяти чтобы получить доступ к page allocator для выделения страниц. Memory Objects не используют интерфейсы виртуальной или общей памяти, этот элемент использует только механизм распределения страниц. Многие компоненты SQL Server обращаются напрямую к MO, минуя клерки памяти. МО предоставляют возможность распределить диапазоны памяти произвольного размера.,  sys.dm_os_memory_objects)

3. Memory Nodes (Главная задача этого компонента состоит в определении области выделения памяти на узле NUMA,если памяти не хватает может быть выделена с соседнего узла , sys.dm_os_memory_nodes)

4. Memory Brokers (отслеживает запросы памяти от компонентов SQL и сопоставляет с текущими показатели её использования. Основываясь на полученной информации, брокер вычисляет «оптимальный» размер памяти, которая может быть распределена между компонентами. Брокер уведомляет компоненты о своих вычислениях, после этого каждый компонент использует эти сведения для дальнейшего использования памяти.)

5. Memory Pools (используется чтобы установить лимиты памяти,   internal - механизмы SQLOS, Default –пул по умолчанию для всего остального).

Более подробно все давно описано на хабре

среда, 18 февраля 2015 г.

Частичное обновление страницы. AJAX+ ASP.NET

Описание вызова ниже, пример взят отсюда  и немного модифицирован.



Aspx страница

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script>
    <script type = "text/javascript">
        function ShowCurrentTime() {
            $.ajax({
                type: "POST",
                url: "Default.aspx/GetDocStatus",
                data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccess,
            failure: function (response) {
                alert(response.d);
            }
        });
    }
    function OnSuccess(response) {
       // alert(response.d);
        document.getElementById("demo").innerHTML = response.d;
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div style="height: 427px"/>
    Your Name :
    <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
    <input id="btnGetTime" type="button" value="Show Current Time"
        onclick = "ShowCurrentTime()" /><br />
        <asp:Label ID="LabelRefresh" runat="server" Text="Label"></asp:Label>
        <br />
        <br />
        <p id="demo">Результат</p>
    </form>
</body>
</html>

About