mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-28 16:22:29 +00:00
Improve Python tree-shaking
This commit is contained in:
parent
5bb2275788
commit
4f41f2184d
169 changed files with 4182 additions and 2411 deletions
|
@ -17,15 +17,50 @@
|
|||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/runtime/gc.internal.h"
|
||||
#include "libc/testlib/ezbench.h"
|
||||
#include "libc/testlib/testlib.h"
|
||||
#include "libc/x/x.h"
|
||||
|
||||
TEST(xstrcat, test) {
|
||||
EXPECT_STREQ("hi", gc(xstrcat("hi")));
|
||||
EXPECT_STREQ("hithere", gc(xstrcat("hi", "there")));
|
||||
EXPECT_STREQ("einszweidrei", gc(xstrcat("eins", "zwei", "drei")));
|
||||
}
|
||||
|
||||
TEST(xstrcat, pointerAbuse) {
|
||||
EXPECT_STREQ("hi there", gc(xstrcat("hi", ' ', "there")));
|
||||
EXPECT_STREQ("hi there\n", gc(xstrcat("hi", ' ', "there", '\n')));
|
||||
}
|
||||
|
||||
int hard_static(void) {
|
||||
char *b, *p;
|
||||
p = b = malloc(16);
|
||||
p = stpcpy(p, "eins");
|
||||
p = stpcpy(p, "zwei");
|
||||
p = stpcpy(p, "drei");
|
||||
free(b);
|
||||
return (intptr_t)b;
|
||||
}
|
||||
|
||||
int hard_dynamic(void) {
|
||||
char *b, *p;
|
||||
p = b = malloc(16);
|
||||
p = stpcpy(p, VEIL("r", "eins"));
|
||||
p = stpcpy(p, VEIL("r", "zwei"));
|
||||
p = stpcpy(p, VEIL("r", "drei"));
|
||||
free(b);
|
||||
return (intptr_t)b;
|
||||
}
|
||||
|
||||
BENCH(xstrcat, bench) {
|
||||
EZBENCH2("hard_static", donothing, EXPROPRIATE(hard_static()));
|
||||
EZBENCH2("hard_dynamic", donothing, EXPROPRIATE(hard_dynamic()));
|
||||
EZBENCH2("xstrcat", donothing, free(xstrcat("eins", "zwei", "drei")));
|
||||
EZBENCH2("xasprintf", donothing,
|
||||
free(xasprintf("%s%s%s", "eins", "zwei", "drei")));
|
||||
EZBENCH2("xstrcat2", donothing,
|
||||
free(xstrcat("einseinseins", "zweizweizwei", "dreidreidrei")));
|
||||
EZBENCH2("xasprintf2", donothing,
|
||||
free(xasprintf("%s%s%s", "einseinseins", "zweizweizwei",
|
||||
"dreidreidrei")));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue