exe Вы выходите из программ путаницы, варьируются по скорости?

 public  SendNotice(int deviceType, string deviceToken, string message, int badge, int status, string sound)
    {
        AndroidFCMPushNotificationStatus result = new AndroidFCMPushNotificationStatus();
        try
        {
            result.Successful = false;
            result.Error = null;
            var value = message;
            WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send");
            tRequest.Method = "post";
            tRequest.ContentType = "application/json";
            var serializer = new JavaScriptSerializer();
            var json = "";
            tRequest.Headers.Add(string.Format("Authorization: key={0}", "AA******"));
            tRequest.Headers.Add(string.Format("Sender: id={0}", "11********"));
           if (DeviceType == 2)
            {
                var body = new
                  {
                      to = deviceToken,
                      data = new
                      {
                          custom_notification = new
                            {
                                title = "Notification",
                                body = message,
                                sound = "default",
                                priority = "high",
                                show_in_foreground = true,
                                targetScreen = notificationType,//"detail",
                                                                },
                      },

                      priority = 10
                  };

                json = serializer.Serialize(body);
            }
            else
            {
                var body = new
                {
                    to = deviceToken,
                    content_available = true,
                    notification = new
                    {
                        title = "Notification",
                        body = message,
                        sound = "default",
                        show_in_foreground = true,
                    },
                    data = new
                    {
                        targetScreen = notificationType,
                        id = 0,
                    },
                    priority = 10
                };
                json = serializer.Serialize(body);
            }

            Byte[] byteArray = Encoding.UTF8.GetBytes(json);

            tRequest.ContentLength = byteArray.Length;

            using (Stream dataStream = tRequest.GetRequestStream())
            {
                dataStream.Write(byteArray, 0, byteArray.Length);

                using (WebResponse tResponse = tRequest.GetResponse())
                {
                    using (Stream dataStreamResponse = tResponse.GetResponseStream())
                    {
                        using (StreamReader tReader = new StreamReader(dataStreamResponse))
                        {
                            String sResponseFromServer = tReader.ReadToEnd();
                            result.Response = sResponseFromServer;
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            result.Successful = false;
            result.Response = null;
            result.Error = ex;
        }
}
5
задан e-sushi 2 December 2013 в 13:33
поделиться

3 ответа

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

5
ответ дан 18 December 2019 в 12:03
поделиться

Отказ от ответственности: мой работодатель является Решениями PreEmptive, создателем.NET Dotfuscator obfuscator.

Это может зависеть от obfuscator, который Вы используете и опции, которые Вы включаете в нем. Я собираюсь говорить на основе опыта с Dotfuscator.

Может быть время загрузки и улучшения объема потребляемой памяти запутываемых блоков при использовании переименования и удаления, частично потому что все/больше всего методы, поля, и т.д. переименованы к намного меньшим именам (например, "ThisVeryLongMethodName (SomeVeryLongParameterName)", становится "(a)", таким образом, Вы получаете некоторую выгоду в размере блока и обычно со временем загрузки. Кроме того, с удалением Вы удаляете методы, и т.д. которые никогда не являются вызовом и снова уменьшают размер Ваших двоичных файлов.

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

Если Вы используете какие-либо другие системы/методы как безопасная vm технология SLP Microsoft к методам рендеринга, нечитабельным, который также подвергнется потере производительности во время выполнения из-за безопасного vm.

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

8
ответ дан 18 December 2019 в 12:03
поделиться

Существуют различные методы путаницы, которые могут использовать инструменты. Существуют простые, переименовывают методы, которые не должны влиять на производительность всегда. Другие методы могли бы изменить поток кода. Это могло оказать негативное влияние на производительность. Вы могли бы хотеть проверить другой obfuscators и испытать различные настройки.

2
ответ дан 18 December 2019 в 12:03
поделиться
Другие вопросы по тегам:

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