Более простое решение, чем скрипты Python, использует временную точку останова .
Это выглядит так:
b ParentFunction
command 1
tb FunctionImInterestedIn
c
end
Каждый раз, когда вы входите в ParentFunction
, вы установите единовременную точку останова на интересующую вас функцию, а затем продолжите работу (предположительно, пока вы не нажмете эту точку останова).
Так как вы разломаете ровно один раз на FunctionImInterestedIn
, это не сработает, если FunctionImInterestedIn
вызывается несколько раз в контексте ParentFunction
и вы хотите разбить каждый вызов.
Я не проводил никаких тестов, но ...
Поскольку JSON - это всего лишь описание вложенных последовательностей строк, без необходимости предлагать интерфейс DOM, синтаксический анализ атрибутов и другие тонкие вещи я предполагаю, что парсер JSON НАМНОГО быстрее, чем анализатор XML.
Комментарий Адама, приведенный выше, убедил меня в этом. Используя https://twitter.com/status/mentions. [Format] , я обнаружил, что simplexml_load_string () НЕМНОГО быстрее, чем json_decode (). Но разница - это практически предел погрешности.
Test #1 time (xml): 3.75221395493 seconds
Test #2 time (xml): 4.1562371254 seconds
Test #3 time (xml): 3.60420489311 seconds
Test #4 time (xml): 3.85622000694 seconds
Test #5 time (xml): 3.89622211456 seconds
и
Test #1 time (json): 4.53225803375 seconds
Test #2 time (json): 4.06823205948 seconds
Test #3 time (json): 4.03222990036 seconds
Test #4 time (json): 3.80421590805 seconds
Test #5 time (json): 3.88022208214 seconds
в следующем коде (где я уже свернул данные в файл, data. [Xml, json]).
<?php
$test = 'json'; //xml or json
$data = implode(file("data.".$test),"\r\n");
for ($t=1; $t<=5; $t++) {
$start[$t] = microtime(1);
for ($i=0; $i<3000; $i++) {
if ($test == 'xml') $xml = simplexml_load_string($data);
else $json = json_decode($data);
}
$end[$t] = microtime(1);
echo "<p>Test #{$t} time ({$test}): " . ($end[$t] - $start[$t]). " seconds</p>";
}
Ответ зависит от того, как вы планируете его использовать. Я имею в виду, что если вы создадите какой-либо запрос и обработаете его внутри PHP-скрипта, я считаю, что XML будет намного быстрее. Но как только вы рассматриваете создание вызовов AJAX и последующего процесса обработки результатов, вам следует подумать об использовании JSON, поскольку вы получаете выгоду от автоматического представления результата JSON в JavaScript в виде объектов, а также он поддерживает междоменный запрос с функциями обратного вызова, тогда как для XML вы будете прокси .
JSON имеет тенденцию быть намного меньше по размеру
Также вы запускаете json_decode один раз, а затем получаете доступ к данным как к массиву, который не используется никакими другими функциями.
Без запуска тестов id идти с JSON быстрее
Я склонен обнаруживать, что simplexml_load_string () быстрее, чем json_decode (), когда возвращаемый json является объектом.
Однако, когда json возвращается в виде массива с использованием json_decode ($ string, true) на самом деле намного быстрее, чем использование объекта (как и в большинстве случаев PHP при сравнении массивов с объектами).
Я видел, что json_decode () более чем в два раза быстрее, чем simplexml_load_string () в этих обстоятельствах.
Рассматривали ли вы, как общая экономия полосы пропускания может повлиять на производительность вашего скрипта? Если ваши запросы будут повторяться, использование JSON в течение значительного времени должно быть разумным экономическим выбором.