clr.sll! StarNameПроверка потребления ЦП

У меня есть приложение WinForm на языке C # (.NET 4.0), которое непрерывно взаимодействует с приложением на базе Linux, получает некоторые данные от него несколько раз в секунду. Я отлаживал это приложение WinForm, чтобы уменьшить его высокую эффективность использования ЦП, когда увидел, что ' clr.sll! Strong NameSignatureVerification ' потребляет много ЦП для этого приложения. Я использовал Process Explorer, чтобы выяснить это. Некоторые поисковики Google сообщили мне, что «clr.sll! Strong NameSignateVerification» запускается, потому что CLR пытается проверить, является ли это строго именованной сборкой (для которой CLR не требуется).

После дальнейших исследований я попытался sn.exe из Microsoft SDK пропустить проверку подписи для этого приложения WinForm. Я получил ошибку, сказав, что это не сильно названная сборка. Я не был удивлен, так как не подписал это приложение или не помню, чтобы что-либо могло вызвать CLR для проверки подписи этого приложения.

Мой опыт в области безопасности приложений .net практически равен нулю, поэтому в данный момент я ищу помощь по этому вопросу. Любой указатель будет полезен.

Заранее спасибо.

-121--1393173-

Примените функцию к каждому столбцу в кадре данных, наблюдая за каждым столбцом существующего типа данных Я пытаюсь получить значение min/max для каждого столбца в большом кадре данных, как часть знакомства с моими данными. Моя первая попытка была: применить (t, 2, max, na.rm = 1) Он рассматривает все как вектор символов, потому что...

Я пытаюсь получить значение min/max для каждого столбца в большом кадре данных, как часть знакомства с моими данными . Моя первая попытка была:

apply(t,2,max,na.rm=1)

Он рассматривает все как символьный вектор, потому что первые несколько столбцов являются символьными типами. Таким образом, max из некоторых числовых столбцов выходит как «-99,5» .

Я тогда попробовал это:

sapply(t,max,na.rm=1)

, но он жалуется на max не имеет значения для факторов . ( lapply - то же самое.) Меня смущает то, что применить мысль max была совершенно значима для факторов, например, она вернула «ZEBRA» для столбца 1.

BTW, я взглянул на Использование sapply на векторе POSIXct и один из ответов говорит: " Когда вы используете sappy, ваши объекты принудительно числятся,... ". Это то, что происходит со мной? Если да, то есть ли альтернативная функция применения, которая не принуждает? Безусловно, это общая потребность, поскольку одной из ключевых особенностей типа кадра данных является то, что каждый столбец может быть другого типа.

49
задан Community 23 May 2017 в 01:47
поделиться

2 ответа

Решение с помощью retype() от hablar для принуждения факторов к символьному или числовому типу в зависимости от осуществимости. Я использовал бы dplyr для применения макс. к каждому столбцу.

Код

library(dplyr)
library(hablar)

# Retype() simplifies each columns type, e.g. always removes factors
d <- d %>% retype()

# Check max for each column
d %>% summarise_all(max)

Результат

Не новые типы столбца.

     v1 v2       v3 v4   
  <dbl> <chr> <dbl> <chr>
1 0.974 j      1.09 J   

Данные

# Sample data borrowed from @joran
d <- data.frame(v1 = runif(10), v2 = letters[1:10], 
                v3 = rnorm(10), v4 = LETTERS[1:10],stringsAsFactors = TRUE)
0
ответ дан 7 November 2019 в 11:52
поделиться

Абсолютный лучший способ сделать это, избегают, чтобы основа *применила функции, который принуждает весь кадр данных, чтобы выстроить и использовать colwise от [1 110] plyr. (Я удивлен, что никто не упомянул это)

Пример с помощью parse_guess как функция, которая воздействует на все виды векторных типов данных:

colwise(parse_guess)(t)
<час>

менее интересный ответ: мы можем подать заявку на каждый столбец с для цикла:

for (i in 1:nrow(t)) { t[, i] <- parse_guess(t[, i]) }

я не знаю о хорошем способе , делание уроки с *применяется при сохранении структуры кадра данных .

0
ответ дан 7 November 2019 в 11:52
поделиться
Другие вопросы по тегам:

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