блок копии памяти

Вы можете использовать StringRequest, чтобы делать то же самое, что и с JsonObjectRequest, при этом все еще имея возможность легко отправлять параметры POST. Единственное, что вам нужно сделать, это создать JsonObject из строки запроса, которую вы получаете, и оттуда вы можете продолжить, как если бы это был JsonObjectRequest.

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            //Creating JsonObject from response String
                            JSONObject jsonObject= new JSONObject(response.toString());
                            //extracting json array from response string
                            JSONArray jsonArray = jsonObject.getJSONArray("arrname");
                            JSONObject jsonRow = jsonArray.getJSONObject(0);
                            //get value from jsonRow
                            String resultStr = jsonRow.getString("result");
                        } catch (JSONException e) {

                        }

                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                }){
                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {
                        Map<String,String> parameters = new HashMap<String,String>();
                        parameters.put("parameter",param);

                        return parameters;
                    }

                };
                requestQueue.add(stringRequest);
11
задан unwind 3 June 2009 в 12:24
поделиться

6 ответов

Если вам нужно реализовать такую ​​функциональность самостоятельно, я предлагаю вам проверить Устройство Даффа , если это нужно сделать эффективно.

4
ответ дан 3 December 2019 в 01:07
поделиться

Как насчет std :: memcpy ?

39
ответ дан 3 December 2019 в 01:07
поделиться

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

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

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

Если вы можете поместить нужные данные в регистры, тогда вы сможете использовать множество классных инструкций процессора, например MMX или SSE, для выполнения параллельных вычислений. Но что касается параллельного копирования памяти, это невозможно.

Как говорили другие, используйте memcpy. Это надежно, отлажено и быстро.

2
ответ дан 3 December 2019 в 01:07
поделиться
0
ответ дан 3 December 2019 в 01:07
поделиться

РЭП МОВСД в сборке возможно? Трудно сказать без дополнительной информации о том, что именно вы пытаетесь скопировать ... Или вы можете перепрограммировать контроллер DMA, чтобы он делал это тоже, но на самом деле это будет медленнее, чем просто использование процессора. : -)

0
ответ дан 3 December 2019 в 01:07
поделиться

Используйте memmove (), если исходная и исходная точки совпадают. Обычно memcpy () и memmove () уже сильно оптимизированы для clib вашего компилятора. Если вы все же пишете замену, по крайней мере, сравните ее с версиями clib, чтобы убедиться, что вы не замедляете свой код.

У меня есть блок, состоящий из 5000 строк или более, и в функции, которая вызывается все время 10000 раз

Также подумайте об изменении структуры данных. Возможно, вместо 2D-массива у вас может быть одномерный массив указателей на вторичные массивы (столбцы). Тогда вместо копирования целых строк вам нужно только скопировать или переместить указатели. Вы можете объединить массивы столбцов в список свободных, чтобы не тратить много времени на их выделение и освобождение.

1
ответ дан 3 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

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