628 research outputs found

    Pemanfaatan HIPHOP For PHP pada Web Server

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    ¿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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    • …
    corecore