Поскольку ответа от Microsoft не было больше месяца, я знаю, что единственный способ исправить это - перехватить вызов до того, как он попадет в часть кода Microsoft (с использованием промежуточного программного обеспечения), и изменить его на формат, который они ожидают: \
Я обсудил проблему и решение в следующей ссылке, но я все еще жду исправления от Microsoft: \ http: //pilpag.blogspot .com / 2019/02 / enable-scim-using-microsoftsystemforc.html
Простое исправление выглядит так:
public class PatchRequestUpdaterMiddleware : OwinMiddleware
{
private const string OperationValueFinderRegex = "({[\\s\\w\":,.\\[\\]\\\\]*op[\\s\\w\":,.\\[\\]\\\\]*\"value\"\\s*:\\s*)(\"[\\w\\s\\-,.@?!*;\'\\(\\)]+\")"; //{"op":"x","value":"Andrew1"}
public override async Task Invoke(IOwinContext context)
{
if (context.Request.Method.ToLower() != "patch")
{
await Next.Invoke(context);
return;
}
var streamReader = new StreamReader(context.Request.Body);
string body = streamReader.ReadToEnd();
body = Regex.Replace(body, OperationValueFinderRegex, m => $"{m.Groups[1].Value}[{{\"value\":{m.Groups[2].Value}}}]"); //{"op":"x","value":"Ashkan"} ==>> {"op":"x","value":[{"value":"Ashkan"}]}
context.Request.Body = new MemoryStream(Encoding.UTF8.GetBytes(body));
await Next.Invoke(context);
}
}
И просто добавьте это к провайдеру, которого вы создали:
class myProvider:ProviderBase
{
....
private void OnServiceStartup(IAppBuilder appBuilder, HttpConfiguration configuration)
{
...
appBuilder.Use();
...
}
Зашифруйте строку (в цикле) путем вызова Cipher.update (). Алгоритмы шифрования по определению очень трудно оптимизировать. Единственная проблема состоит в том, что существует некоторая нетривиальная установка, которую необходимо выполнить. Я отмечаю этот ответ как общественную Wiki, так, чтобы кто-то, кто записал это недавно, мог заполнить его.
Вы могли попробовать что-то простое как
private static void spin(int milliseconds) {
long sleepTime = milliseconds*1000000L; // convert to nanoseconds
long startTime = System.nanoTime();
while ((System.nanoTime() - startTime) < sleepTime) {}
}
Тест:
public static void main(String[] args) {
final int NUM_TESTS = 1000;
long start = System.nanoTime();
for (int i = 0; i < NUM_TESTS; i++) {
spin(500);
}
System.out.println("Took " + (System.nanoTime()-start)/1000000 +
"ms (expected " + (NUM_TESTS*500) + ")");
}
Мой вывод:
$ java SpinTest
Took 500023ms (expected 500000)
Таким образом, цикл не стал оптимизированным далеко (и да, я пронзил свой ЦП к 100% в течение восьми минут только для тестирования этого :)).
Создайте очень большое количество случайных объектов и затем чередуйте вызовы к Collections.shuffle()
и Collections.sort()
.
Я использовал Джакартскую палату общин Lang для генерации случайных строк в целях переставлять/сортировать.
Создайте матрицу и сделайте несколько матричных манипуляций.
Можно настроить это довольно легко путем варьирования размера матрицы.