Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:39361 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 19567 invoked from network); 27 Jul 2008 03:30:37 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Jul 2008 03:30:37 -0000 Authentication-Results: pb1.pair.com header.from=cyoung.lee@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=cyoung.lee@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 64.233.166.181 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: cyoung.lee@gmail.com X-Host-Fingerprint: 64.233.166.181 py-out-1112.google.com Received: from [64.233.166.181] ([64.233.166.181:37192] helo=py-out-1112.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 30/28-02589-6DBEB884 for ; Sat, 26 Jul 2008 23:30:35 -0400 Received: by py-out-1112.google.com with SMTP id a25so1990022pyi.16 for ; Sat, 26 Jul 2008 20:30:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:to :content-type:content-transfer-encoding:mime-version:subject:date :x-mailer; bh=wUckwIX6scWjPhAeOxqKDBY+ahW6PRv+k7FeQUYTXt8=; b=mnFdYXOitWXdoVCXufVli6qoOT+DHVp1h6km4szTWjUbaTK7l8w9PfwIH5eOhLwIle O1mla9xMCzu4wenQEiZp4CMHGBrzN224t/TzbbghS/rkBLuoKEJgMDXV4RwAkxBA4VlM UCnUjEBfSfZ5Quc3UUg9ITFAKglTdwGLbJz2o= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:content-type:content-transfer-encoding :mime-version:subject:date:x-mailer; b=GD59VU45FJ4HEpMlSAERWMpgSKqf4JcF9IcKMPfY63CrW9+wKHxFbrUy/Ab5sEI3aV M5VyZzyHSL2/g5qhcw5i93iAquCLx0zs/WyoDVFtb/wCK8JyyhoDLWUD2Va8v9t6X6/n XI5IingkWWTUMztf1jkZs3+FwtkxF6c3K7GNA= Received: by 10.65.112.18 with SMTP id p18mr6632629qbm.15.1217129423828; Sat, 26 Jul 2008 20:30:23 -0700 (PDT) Received: from 149-159-141-163.dhcp-bl.indiana.edu ( [149.159.141.163]) by mx.google.com with ESMTPS id n29sm11024243pyh.32.2008.07.26.20.30.22 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 26 Jul 2008 20:30:23 -0700 (PDT) Message-ID: <7258D645-9F3E-4AAA-82E4-E8566447BF62@gmail.com> To: internals@lists.php.net Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v926) Date: Sat, 26 Jul 2008 23:30:21 -0400 X-Mailer: Apple Mail (2.926) Subject: [PHP-DEV] GSoC Update (XDebug project) From: cyoung.lee@gmail.com (Chung-Yang Lee) I am Chung-Yang (Kenneth) Lee, a current master student in Indiana University Bloomington under the information science major. For GSoC, I work on the XDebug project, which is to create a web front- end to deal with the profiler's output from XDebug. The main goal is to create a web-based application that make the output more readable and helpful to developers. [ Project Details ] The goal of this project is to build an interface that can visualize the cachegrind / callgrind output from XDebug, which is a pure text file containing information about function relationships within the code. To achieve this goal, I selected EXT JS grid as the back-end supported library. The system flow is users will first decide either to upload a file to be parsed or choose a file from an assigned directory. After the file is uploaded / chosen, the system will extract and calculate required information from the file and format it into a JSON object. The grid will then read in the JSON object and present the information to the front-end. Users can perform functions like sorting, filtering, ungrouping, moving columns around, etc. on the grid. [ Main Functionality ] - File upload - Cachegrind output parsing - Track Function calls - Track Function calls execution time - Function call tree and track time/percent taken for the whole tree processing and - Percent and Time format output filtering - List callers - List callees - Graph tree structure [ Progress ] Most of the functionalities were done. Users can now upload a file to get parsed and visualized from the interface. After the file is parsed, the interface will display information like function names, total self cost in ms and by percentage, invocation count. The information is displayed in a grid after the file is parsed and users can perform sorting, grouping / ungrouping, and moving columns on the grid as for now. Currently, I am working on the information filtering function that users can specify what information they need, for example, filtering out php internal functions, searching time consumed by a function that is greater / less than a specified number, etc. Making the file uploading process more manageable and making the whole application more configurable are two main tasks after the filtering function is done. Thanks, Kenneth