avva: (Default)
[personal profile] avva
Еще Бисмарк заметил, что стандартные библиотеки - как сосиски: приятнее использовать по назначению, не зная в подробностях, как их делают.

В исходниках java.util.Arrays, когда после множества фасадных методов сортировки с разными опущенными аргументами дело доходит до "мяса", до настоящего кода сортировки, его предваряет следующий комментарий:

    /*
     * The code for each of the seven primitive types is largely identical.
     * C'est la vie.
     */

А дальше идет семь совершенно одинаковых копий одного и того же кода квиксорта, отличающихся только типами аргументов и локальных переменных. По две страницы кода на каждую копию. Например, основной метод начинается так (к нему еще есть три вспомогательных, тоже в семи копиях каждый).

    private static void sort1(long x[], int off, int len) { ...
    private static void sort1(int x[], int off, int len) { ...
    private static void sort1(short x[], int off, int len) { ...
    private static void sort1(char x[], int off, int len) { ...
    private static void sort1(byte x[], int off, int len) { ...
    private static void sort1(double x[], int off, int len) { ... 
    private static void sort1(float x[], int off, int len) { ...

C'est la vie.

Date: 2009-10-08 10:54 pm (UTC)
From: [identity profile] avva.livejournal.com
Да в этой гребаной glibc пока найдешь настоящие исходники, в лабиринте фальшивых директорий, устаревших иерархий, препроцессорной магии и еще черт знает чего - так набегаешься, что уже ничего от них не хочешь.

Блин. Терпеть не могу этого уродливого бегемота.

Вот то ли дело было читать исходники стандартной библиотеки в FreeBSD: все в очевидных местах, просто и ясно.

Date: 2009-10-08 10:56 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Я, кстати, и не помню уже, где читал эти исходники, не исключено, что на виндах. Но примененные там оптимизации меня потрясли, это я помню хорошо.

Так точно

Date: 2009-10-08 10:57 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Еще Брэм заметил, что жрущий бегемот отвратителен на вид.

Date: 2009-10-09 02:30 am (UTC)
From: [identity profile] http://users.livejournal.com/malfet_/
В glibc есть определенная логика, к ней нужно только привыкнуть.. Вот ld - это настоящий монстр

Date: 2009-10-09 03:19 am (UTC)
From: [identity profile] avnik.livejournal.com
btw читать для самообразования лучше netbsd.
(если мы не говорим про желание узнать что же делает конкретно glibc)

Date: 2009-10-09 02:14 pm (UTC)
From: [identity profile] itman.livejournal.com
Зато там один из самых быстрых аллокаторов памяти. И BSD и МакОС довольно долго просасывали ему по скорости. В частности, в FreeBSD долгое время был malloc без "поточных" буферов. Вполне может быть, что они и сейчас работают медленне, чем гнутый аллокатор.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 03:13 pm
Powered by Dreamwidth Studios