Gustavo Sverzut Barbieri
e9a398e076
test small strings.
...
SVN revision: 37280
2008-10-28 17:19:02 +00:00
Gustavo Sverzut Barbieri
a5db129f56
Add missing magic check for existing node.
...
SVN revision: 37279
2008-10-28 17:16:42 +00:00
Gustavo Sverzut Barbieri
2569094023
Code refactor and cleanup of eina_stringshare_add().
...
Cases are now handled in separate, doing less useless steps and easier
to understand since 3 cases are now distinct.
SVN revision: 37278
2008-10-28 17:15:07 +00:00
Cedric BAIL
a299da4fb5
This test is now not defined. Remove it.
...
SVN revision: 37277
2008-10-28 16:40:34 +00:00
Gustavo Sverzut Barbieri
72ae858dac
fix _GET macros.
...
SVN revision: 37276
2008-10-28 16:37:32 +00:00
Cedric BAIL
e243e4408a
Make Eina_Rectangle_Pool more usable.
...
SVN revision: 37275
2008-10-28 15:28:46 +00:00
Cedric BAIL
4592044c82
Fix a little typo.
...
SVN revision: 37274
2008-10-28 14:45:16 +00:00
Gustavo Sverzut Barbieri
96adb8e1f0
save a byte per stringshare node.
...
we don't need to use 'begin' flag (that takes a byte) just to see if
we're in the same memory block as the head, just do a pointer math.
SVN revision: 37270
2008-10-28 12:34:58 +00:00
Gustavo Sverzut Barbieri
0b1e2fa0dc
reduce the popuplation_group size.
...
we just have special case for up to 3 letters, everything else is
regular population.
SVN revision: 37269
2008-10-28 12:26:05 +00:00
Gustavo Sverzut Barbieri
3cd98b547a
stringshare_del optimization.
...
trade off safety by speed, we will always assume str was previously
shared, like evas_stringshare_del() did and we can know with zero-cost
the number of references and can avoid strlen() too.
When references drop to zero we still have to do the hash, access the
bucket and then lookup the Red-Black tree, then walk the list of
nodes, but avoiding so would use more memory, unacceptable at this
point.
SVN revision: 37268
2008-10-28 12:23:12 +00:00
Gustavo Sverzut Barbieri
8325ae6ba3
Save 4 bytes per big string shared.
...
SVN revision: 37258
2008-10-28 00:42:35 +00:00
Gustavo Sverzut Barbieri
24ee564949
Cheap way to get strlen of a shared string.
...
it's not safe, but it's faster and can help for large strings, maximum
cost is 4 comparisons plus one pointer access.
SVN revision: 37257
2008-10-28 00:31:09 +00:00
Gustavo Sverzut Barbieri
16aed2623d
define function as void as in prototype.
...
SVN revision: 37256
2008-10-28 00:18:31 +00:00
Gustavo Sverzut Barbieri
d4ac927395
dump show percentages.
...
not that useful, but I like it.
SVN revision: 37253
2008-10-27 20:35:28 +00:00
Cedric BAIL
72e45419ec
Add Eina_Rectangle_Pool support. Typically help for font handling in OpenGL or
...
any case where you need to split a rectangle in many differents small rectangle.
SVN revision: 37252
2008-10-27 20:24:12 +00:00
Gustavo Sverzut Barbieri
db296d3d3c
better optimize small stringshare comparison
...
SVN revision: 37251
2008-10-27 20:16:52 +00:00
Gustavo Sverzut Barbieri
c311dd99a2
stringshare: special case for small (2-3 letters).
...
This should reduce overhead and give a bit speedup as well, let's test
with e17 real data and see how it goes.
SVN revision: 37250
2008-10-27 19:26:14 +00:00
Sebastian Dransfeld
0b115add8e
Since CLOCK_PROCESS_CPUTIME_ID is a POSIX standard, we use it if it
...
exists regardles of system. Seems BSD actually is the weird case here.
Still use CLOCK_REALTIME as fallback.
SVN revision: 37249
2008-10-27 15:16:06 +00:00
Sebastian Dransfeld
23fdacaa1e
Better fallback on clock as suggested by Naruto TAKAHASHI
...
SVN revision: 37248
2008-10-27 15:08:46 +00:00
Sebastian Dransfeld
3488ca351f
Fix CLOCK as suggested by Ravenlock.
...
SVN revision: 37247
2008-10-27 14:19:55 +00:00
Cedric BAIL
45273db267
Correctly put condition around the code.
...
SVN revision: 37244
2008-10-27 14:05:09 +00:00
Cedric BAIL
d46f7e583e
* Optimize case for string length == 0 and 1.
...
* Add more debug information when using --enable-stringshare-usage.
SVN revision: 37239
2008-10-27 13:23:52 +00:00
Sebastian Dransfeld
b6ddfb54cf
Mark unused parameter with __UNUSED__
...
SVN revision: 37214
2008-10-27 09:49:13 +00:00
Carsten Haitzler
089b8ac181
add a stringshare dumper so we can examine what's in there and improve usage.
...
SVN revision: 37186
2008-10-27 00:36:22 +00:00
Michael Jennings
a9ad1b5aeb
Sat Oct 25 11:41:49 2008 Michael Jennings (mej)
...
Add spec file for eina.
----------------------------------------------------------------------
SVN revision: 37104
2008-10-25 18:46:18 +00:00
Eric Schuele
190a7b56c7
Build on FreeBSD. Patch from Naruto, plus a tweak to remove the unneeded libdl.
...
SVN revision: 37103
2008-10-25 18:17:22 +00:00
Carsten Haitzler
7d0d0aaf7f
handle some bizarre build issues...
...
SVN revision: 37048
2008-10-24 10:57:00 +00:00
Sebastian Dransfeld
a8c2834987
modules most export init and shutdown as EAPI
...
SVN revision: 37042
2008-10-24 06:24:08 +00:00
Davide Andreoli
eacf00b6d7
small doxy fix
...
SVN revision: 37037
2008-10-24 00:37:09 +00:00
Cedric BAIL
b114ef85de
Really return Eina_Bool.
...
SVN revision: 37022
2008-10-23 12:50:33 +00:00
Cedric BAIL
4bb02bdf37
Add more error information during eina module load.
...
SVN revision: 36955
2008-10-22 08:56:19 +00:00
Gustavo Sverzut Barbieri
93a280b7d7
eina_bool is now an unsigned char.
...
This makes clear what size and if we have a signal or not in our type,
so no compilers have the right to choose different for us (like they
do with enum).
Also fixes compile of C++ programs with eina_rectangle.h, that
contains some inline code, the expression evaluates a boolean
expression and compiler does not know how to convert that to old
Eina_Bool.
SVN revision: 36939
2008-10-21 15:21:37 +00:00
Cedric BAIL
430fb672cd
Rename EINA_LIST_ITER_NEXT to EINA_LIST_FOREACH.
...
SVN revision: 36930
2008-10-21 12:49:29 +00:00
Cedric BAIL
68d377afe6
Rename EINA_INLIST_ITER_NEXT/EINA_INLIST_ITER_LAST to EINA_INLIST_FOREACH/
...
EINA_INLIST_REVERSE_FOREACH so it best match is behaviour. Asked by Gustavo.
SVN revision: 36928
2008-10-21 12:19:57 +00:00
kaethorn
ac8b1a4cf9
Add Debian files.
...
SVN revision: 36927
2008-10-21 12:07:40 +00:00
Cedric BAIL
1950725606
Add merge function to list data type.
...
SVN revision: 36922
2008-10-21 11:28:38 +00:00
Cedric BAIL
c9779e876f
Actually include eina_convert in the main header.
...
SVN revision: 36860
2008-10-20 15:01:01 +00:00
Cedric BAIL
93711c814e
Fix hash iterator to iterate with only one element.
...
SVN revision: 36858
2008-10-20 14:45:01 +00:00
Cedric BAIL
a52cc857fa
Put the mempool backend structure with other structure.
...
SVN revision: 36855
2008-10-20 13:23:18 +00:00
Cedric BAIL
6734c580df
Zero is a correct value.
...
SVN revision: 36854
2008-10-20 13:21:52 +00:00
Carsten Haitzler
31727e370d
actually compile!
...
SVN revision: 36849
2008-10-20 12:08:16 +00:00
Cedric BAIL
4953eb74fe
Apps can now provide their own mempool.
...
SVN revision: 36847
2008-10-20 11:40:01 +00:00
Carsten Haitzler
f3acb81ceb
and remvoe cats
...
SVN revision: 36834
2008-10-20 04:30:21 +00:00
Carsten Haitzler
6f25f98c72
make eina able to do automake 1.9 and before... :)
...
SVN revision: 36833
2008-10-20 04:25:13 +00:00
Vincent Torri
84dcc24d09
Fix compilation and warnings on Windows:
...
* include Evil.h for getenv on mingw32ce
* include config.h in benchmark.c so that EAPI is correctly defined
* minor fixes in configure.ac
SVN revision: 36729
2008-10-16 21:31:51 +00:00
Cedric BAIL
beb2b251b5
Seems better that way.
...
Thanks for your help ni1s.
SVN revision: 36691
2008-10-15 16:47:54 +00:00
Cedric BAIL
03043eb74d
Oops forgot this one.
...
SVN revision: 36690
2008-10-15 16:40:57 +00:00
Cedric BAIL
380120ce2a
Should fix build outside of the source tree.
...
SVN revision: 36689
2008-10-15 16:23:14 +00:00
Cedric BAIL
d905ee9bda
Add option to report stringshare usage (E17 use around 10000 differents strings).
...
SVN revision: 36658
2008-10-14 15:32:57 +00:00
Cedric BAIL
ed012620d1
Fix stringshare bug with same length.
...
SVN revision: 36657
2008-10-14 15:31:45 +00:00
Cedric BAIL
a61ba1c35a
Fix some warning.
...
SVN revision: 36563
2008-10-10 09:33:40 +00:00
Vincent Torri
82e185693f
and update comments
...
SVN revision: 36554
2008-10-09 20:24:40 +00:00
Vincent Torri
12a528086a
bug--
...
SVN revision: 36553
2008-10-09 20:20:38 +00:00
Vincent Torri
5063c86f4f
fix doxygen m4 macro (make it more efl-ish and fix a bug)
...
SVN revision: 36552
2008-10-09 20:16:41 +00:00
Cedric BAIL
5cddd1f760
Remove dead code.
...
SVN revision: 36493
2008-10-07 11:07:03 +00:00
Cedric BAIL
d3ba8a9e2e
Actually bench djb2 inline and not superfast hash function.
...
SVN revision: 36480
2008-10-06 14:48:13 +00:00
Cedric BAIL
195b2da188
Give more choice to eina_list mempool.
...
SVN revision: 36479
2008-10-06 14:47:09 +00:00
Cedric BAIL
b158ab48ed
Update hash benchmark to reflect E use (hash population under 2000, more find than add).
...
Current status :
- same performance for evas, eina and glib with les than 500 items.
- glib is then faster, eina/evas are second until 800.
- glib remain the fastest, eina is second, and evas is starting to drop in performance.
SVN revision: 36476
2008-10-06 12:16:27 +00:00
Vincent Torri
39fc2ca916
rename result files so that we can check out on Windows
...
SVN revision: 36448
2008-10-05 16:10:17 +00:00
Vincent Torri
89d5e6f073
* add detection of SIMD and thread support
...
* minor formatting
SVN revision: 36418
2008-10-03 15:28:13 +00:00
Cedric BAIL
36b46ca065
Remove dead declaration.
...
SVN revision: 36399
2008-10-02 16:23:27 +00:00
Cedric BAIL
439401682d
Reduce code size, and improve sort speed.
...
SVN revision: 36382
2008-10-01 16:30:30 +00:00
Peter Wehrfritz
beaa909d45
configure.in -> configure.ac
...
SVN revision: 36364
2008-09-30 18:07:29 +00:00
Cedric BAIL
a44f814dd2
Using mempool improve cache locality and speed list manipulation like sort.
...
SVN revision: 36363
2008-09-30 16:48:28 +00:00
Cedric BAIL
b1768c99e6
Make eina_error depend on no other sub module that need initialization.
...
SVN revision: 36361
2008-09-30 16:25:11 +00:00
Cedric BAIL
9ef4d6b65d
Benchmark glib mempool too.
...
SVN revision: 36360
2008-09-30 15:07:35 +00:00
Cedric BAIL
9ffada517d
Faster sort initialisation.
...
SVN revision: 36359
2008-09-30 14:16:18 +00:00
Cedric BAIL
3315d29c7f
Fix chained mempool allocator.
...
SVN revision: 36355
2008-09-30 12:55:33 +00:00
Cedric BAIL
88d0babd0c
Don't remove previous result of benchmark.
...
SVN revision: 36354
2008-09-30 12:55:06 +00:00
Vincent Torri
f9a4c97693
add a config.h
...
SVN revision: 36342
2008-09-30 06:16:41 +00:00
Vincent Torri
bf372e44f9
when a .la file is passed to _LIBADD or _LDADD, automake
...
knows that the corresponding program or lib depends on
that .la file
SVN revision: 36322
2008-09-29 19:30:15 +00:00
Vincent Torri
e88e4d5fb5
* fix warning in tests
...
* add config.h when needed
* remove result/ dir before launching benchmark
SVN revision: 36321
2008-09-29 19:20:16 +00:00
Cedric BAIL
d25b46df3e
As real data came from e17. Little rename.
...
SVN revision: 36320
2008-09-29 17:08:25 +00:00
Cedric BAIL
0bc2413113
Fix prev pointer during stringshare_del.
...
SVN revision: 36319
2008-09-29 17:07:50 +00:00
Cedric BAIL
b6960f58b6
Patch from Vincent Torri that cleanup tests, coverage and benchmark.
...
SVN revision: 36315
2008-09-29 14:35:28 +00:00
Cedric BAIL
7c47066009
Change module API to use Eina_Array as we want to use mempool and module for Eina_List.
...
Fix at the same time a closing bug in eina_module.c.
SVN revision: 36312
2008-09-29 13:28:42 +00:00
Cedric BAIL
fcfa65f9a9
Update configure as we now need automake 1.10.
...
SVN revision: 36310
2008-09-29 09:46:27 +00:00
Cedric BAIL
1620af2ae0
Add benchmark for mempool (chained_mempool is disabled, because it's currently buggy).
...
SVN revision: 36309
2008-09-29 09:45:26 +00:00
Cedric BAIL
93656a916a
Fix initialization.
...
SVN revision: 36308
2008-09-29 09:43:37 +00:00
Cedric BAIL
3564707421
Fix initialization and cleanup.
...
SVN revision: 36307
2008-09-29 09:42:04 +00:00
Vincent Torri
d6ae9053ad
minor formatting
...
SVN revision: 36293
2008-09-28 13:10:08 +00:00
Vincent Torri
79375f9123
* fix clean and dist rules
...
* create eina-$(maj_version).pc.in file automatically
SVN revision: 36292
2008-09-28 12:43:21 +00:00
Vincent Torri
c403c14b1e
let the user specify his own CFLAGS
...
SVN revision: 36288
2008-09-28 11:13:31 +00:00
Cedric BAIL
2acd11a39e
Add a new type of memory pool and factorize test code.
...
SVN revision: 36267
2008-09-26 15:27:46 +00:00
Cedric BAIL
8b33d245e6
Inlined functions require NULL, so including stdlib.h is required.
...
SVN revision: 36266
2008-09-26 15:26:36 +00:00
Cedric BAIL
a466b34ea0
Faster sort from Alexandre Becoulet integrated by quarium inside eina.
...
SVN revision: 36265
2008-09-26 13:45:30 +00:00
Cedric BAIL
6f5b3584dd
Store build information inside eina_config.h, and fix magic use.
...
SVN revision: 36263
2008-09-26 11:41:55 +00:00
Cedric BAIL
42d39725b4
Last part of quarium patch.
...
SVN revision: 36257
2008-09-25 14:46:48 +00:00
Cedric BAIL
8b85ce70d4
Patch from quarium.
...
Add magic to array and list.
Need to patch autotools to generate something like eina_config.h.
SVN revision: 36256
2008-09-25 14:46:16 +00:00
Cedric BAIL
e8b25fb405
Add a sort benchmark.
...
SVN revision: 36250
2008-09-25 12:41:49 +00:00
Cedric BAIL
040e5573d9
Patch from Arnaud de Turckheim "quarium" <quarium@gmail.com>.
...
Use magic inside stringshare without slowdown of benchmark.
Fix magic when not in DEBUG mode.
SVN revision: 36246
2008-09-25 09:02:41 +00:00
Cedric BAIL
4fddcc38df
Fix error stuff.
...
SVN revision: 36225
2008-09-24 17:21:53 +00:00
Cedric BAIL
8072173d6e
As evas use of hash is below 3000 items per hash, update the tests accordingly.
...
SVN revision: 36224
2008-09-24 17:20:24 +00:00
Cedric BAIL
eec2db6edb
Fix test due to mempool internal change.
...
SVN revision: 36223
2008-09-24 17:17:22 +00:00
Cedric BAIL
550ebc9ab1
Add hash and rbtree delete callback, cleanup the code and improve performance (hash as a new internal structure).
...
We still need a hash function for removing a node from the hash and destroying it at the same time.
SVN revision: 36222
2008-09-24 17:14:29 +00:00
Jorge Luis Zapata Muga
5ed8ea7e09
+ Make the benchmark compile again
...
+ Remove unused code
SVN revision: 36213
2008-09-24 13:59:00 +00:00
Cedric BAIL
bf418729d2
Group all rbtree functions.
...
SVN revision: 36209
2008-09-24 12:58:31 +00:00
Cedric BAIL
b00e9e5c64
Use rbtree helper.
...
SVN revision: 36208
2008-09-24 12:57:26 +00:00
Jorge Luis Zapata Muga
c9f08f6124
New module API. Port this API to the mempool subsystem and the tests.
...
Now the modules can define a default function that will be called when the module is loaded and unloaded.
SVN revision: 36207
2008-09-24 12:55:31 +00:00
Cedric BAIL
8acad8a50e
Add rbtree destructor without tree reorder and use it.
...
SVN revision: 36188
2008-09-23 16:07:48 +00:00