628 research outputs found
Pemanfaatan HIPHOP For PHP pada Web Server
HipHop for PHP merupakan sebuah teknologi optimasi website PHP yang dikembangkan oleh Facebook dengan mentransformasi source code PHP menjadi C++ yang optimal dan dengan mengorbankan beberapa fungsi PHP yang jarang digunakan. Artikel ini membahas penggunaan HipHop for PHP pada web server dan pengujiannya dengan cara membandingkannya dengan web server yang tidak menggunakan HipHop for PHP atau tanpa optimasi apapun. Uji coba terhadap pemakaian HipHop for PHP adalah dengan meng-compile sebuah website PHP atau kumpulan source code PHP menjadi binary files C++ hingga bisa diakses oleh sebuah web server. Juga akan dilakukan benchmark terhadap HipHop for PHP dengan menggunakan Apache Benchmark untuk mengetahui performansi HipHop for PHP dalam menangani request (permintaan) user dalam jumlah yang banyak. Dari hasil pengujian didapatkan bahwa HipHop for PHP mampu meningkatkan performansi web server untuk website PHP hingga lebih dari 50
Liquid FM: Recommending Music through Viscous Democracy
Most modern recommendation systems use the approach of collaborative
filtering: users that are believed to behave alike are used to produce
recommendations. In this work we describe an application (Liquid FM) taking a
completely different approach. Liquid FM is a music recommendation system that
makes the user responsible for the recommended items. Suggestions are the
result of a voting scheme, employing the idea of viscous democracy. Liquid FM
can also be thought of as the first testbed for this voting system. In this
paper we outline the design and architecture of the application, both from the
theoretical and from the implementation viewpoints
Simple and Effective Type Check Removal through Lazy Basic Block Versioning
Dynamically typed programming languages such as JavaScript and Python defer
type checking to run time. In order to maximize performance, dynamic language
VM implementations must attempt to eliminate redundant dynamic type checks.
However, type inference analyses are often costly and involve tradeoffs between
compilation time and resulting precision. This has lead to the creation of
increasingly complex multi-tiered VM architectures.
This paper introduces lazy basic block versioning, a simple JIT compilation
technique which effectively removes redundant type checks from critical code
paths. This novel approach lazily generates type-specialized versions of basic
blocks on-the-fly while propagating context-dependent type information. This
does not require the use of costly program analyses, is not restricted by the
precision limitations of traditional type analyses and avoids the
implementation complexity of speculative optimization techniques.
We have implemented intraprocedural lazy basic block versioning in a
JavaScript JIT compiler. This approach is compared with a classical flow-based
type analysis. Lazy basic block versioning performs as well or better on all
benchmarks. On average, 71% of type tests are eliminated, yielding speedups of
up to 50%. We also show that our implementation generates more efficient
machine code than TraceMonkey, a tracing JIT compiler for JavaScript, on
several benchmarks. The combination of implementation simplicity, low
algorithmic complexity and good run time performance makes basic block
versioning attractive for baseline JIT compilers
Clasificador de subgéneros de música electrónica
ÂżQuĂ© hace que nosotros, los humanos, seamos capaces de diferenciar canciones de distintos gĂ©neros? Quizás el lector se habrá encontrado alguna vez en la difĂcil situaciĂłn de explicar a alguien “cĂłmo suena” el estilo de mĂşsica que le gusta. Entonces, ÂżpodrĂa existir una clasificaciĂłn de gĂ©neros automática?. El incremento del contenido digital disponible en diversas áreas nos obliga a buscar formas más rápidas y eficientes de almacenar y ordenar la informaciĂłn. Nunca habĂa sido tan fácil hacer mĂşsica y miles de canciones nuevas se publican cada dĂa. En sitios web como Beatport, cada semana se publican 25.000 canciones nuevas de mĂşsica electrĂłnica. Probablemente serĂa de gran ayuda clasificar automáticamente todo este contenido.
En la actualidad, con los algoritmos de aprendizaje automático se buscan patrones comunes para clasificar y facilitar el acceso de datos digitalizados. Durante los Ăşltimos 20 años, se ha estudiado el reconocimiento de gĂ©neros musicales para predecir automáticamente el gĂ©nero de una canciĂłn. En los estudios pasados se han clasificado gĂ©neros y subgĂ©neros en distintos estilos musicales, pero hasta donde alcanza nuestro conocimiento, nunca se ha abordado la clasificaciĂłn de subgĂ©neros de mĂşsica electrĂłnica. No obstante, existe una amplia variedad de mĂşsica electrĂłnica y a pesar de que para un oyente ocasional todo podrĂa sonar tremendamente parecido, los fans distinguen entre subgĂ©neros. Por lo tanto tienen que tener caracterĂsticas que los definan.
La clasificaciĂłn en gĂ©neros es subjetiva, pero partiendo de un conjunto debidamente clasificado podemos pensar que los diferentes gĂ©neros tienen algunas cualidades intrĂnsecas objetivables que los caracterizan. En este proyecto, nuestro objetivo es clasificar automáticamente subgĂ©neros de mĂşsica electrĂłnica atendiendo exclusivamente a datos de audio
Static optimization in PHP 7
PHP is a dynamically typed programming language commonly used for the server-side implementation of web applications. Approachability and ease of deployment have made PHP one of the most widely used scripting languages for the web, powering important web applications such as WordPress, Wikipedia, and Facebook. PHP's highly dynamic nature, while providing useful language features, also makes it hard to optimize statically.
This paper reports on the implementation of purely static bytecode optimizations for PHP 7, the last major version of PHP. We discuss the challenge of integrating classical compiler optimizations, which have been developed in the context of statically-typed languages, into a programming language that is dynamically and weakly typed, and supports a plethora of dynamic language features. Based on a careful analysis of language semantics, we adapt static single assignment (SSA) form for use in PHP. Combined with type inference, this allows type-based specialization of instructions, as well as the application of various classical SSA-enabled compiler optimizations such as constant propagation or dead code elimination.
We evaluate the impact of the proposed static optimizations on a wide collection of programs, including micro-benchmarks, libraries and web frameworks. Despite the dynamic nature of PHP, our approach achieves an average speedup of 50% on micro-benchmarks, 13% on computationally intensive libraries, as well as 1.1% (MediaWiki) and 3.5% (WordPress) on web applications
Assemblage Theory: Recording the Archaeological Record: Second Response
This piece is a response to Reinhard’s Assemblage Theory: Recording the Archaeological Record
Reviewing Ligand-Based Rational Drug Design: The Search for an ATP Synthase Inhibitor
Following major advances in the field of medicinal chemistry, novel drugs can now be designed systematically, instead of relying on old trial and error approaches. Current drug design strategies can be classified as being either ligand- or structure-based depending on the design process. In this paper, by describing the search for an ATP synthase inhibitor, we review two frequently used approaches in ligand-based drug design: The pharmacophore model and the quantitative structure-activity relationship (QSAR) method. Moreover, since ATP synthase ligands are potentially useful drugs in cancer therapy, pharmacophore models were constructed to pave the way for novel inhibitor designs
- …