Как мне создать массив в C ++ с помощью new и инициализировать каждый элемент?

Как мне создать массив, используя new и инициализировать каждый элемент определенным значением, без итерации по каждому элементу?

bool* a = new bool[100000];

Используя VS 2008.

Спасибо! Чтобы повысить производительность, я стараюсь выполнять запросы во многих ...

Я разрабатываю приложение для Android, которое использует множество HTTP-запросов к веб-сервису. Сначала я создавал новый экземпляр HttpClient перед каждым запросом. Чтобы повысить производительность, я стараюсь выполнять запросы во многих потоках. Итак, я создал один экземпляр HttpClient, совместно используемый всеми потоками, с помощью ThreadSafeConnectionManager:

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));

BasicHttpParams params = new BasicHttpParams();
ConnManagerParams.setMaxTotalConnections(params, 100);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setUseExpectContinue(params, true);

ThreadSafeClientConnManager connManager = new ThreadSafeClientConnManager(params, registry);
HttpClient client = new DefaultHttpClient(connManager, params);

Но, к моему удивлению, производительность снизилась. Я измерил время, которое нужно потратить на выполнение запросов следующим образом:

long startTime = System.currentTimeMillis();
HttpResponse response = client.execute(postRequest);
long reqTime = System.currentTimeMillis() - startTime;
Log.i("SyncTimer", "Request time:" + reqTime);

Вот журнал, который я получаю с помощью простого DefaultHttpClient без параметров, новый экземпляр на запрос:

01-11 11:10:51.136: INFO/SyncTimer(18400): Request time:1076
01-11 11:10:54.686: INFO/SyncTimer(18400): Request time:1051
01-11 11:10:57.996: INFO/SyncTimer(18400): Request time:1054
01-11 11:10:59.166: INFO/SyncTimer(18400): Request time:1070
01-11 11:11:00.346: INFO/SyncTimer(18400): Request time:1172
01-11 11:11:02.656: INFO/SyncTimer(18400): Request time:1043

И что я получаю с ThreadSafeClientConnManager и одним экземпляром HttpClient :

01-11 11:06:06.926: INFO/SyncTimer(18267): Request time:7001
01-11 11:06:10.412: INFO/SyncTimer(18267): Request time:3385
01-11 11:06:20.222: INFO/SyncTimer(18267): Request time:9801
01-11 11:06:23.622: INFO/SyncTimer(18267): Request time:2058
01-11 11:06:29.906: INFO/SyncTimer(18267): Request time:6268
01-11 11:06:34.746: INFO/SyncTimer(18267): Request time:3525
01-11 11:06:50.302: INFO/SyncTimer(18267): Request time:15551

Что происходит и как с этим бороться?

ОБНОВЛЕНИЕ

Использовать преимущество сохранения активности - это то, что я хочу. Но когда я создаю новый экземпляр HttpClient для каждого запроса, соединение не может быть повторно использовано. Несмотря на это, такая версия работает быстрее, причины для меня непонятны.

9
задан Cœur 15 April 2017 в 16:28
поделиться