Hi Roger,

>I have noticed a decrease in performance (about 40%)
40% ???? Was is this measure ? Max bandwidth on output, number of cycles used, 
footprint? If I understand what you wrote, it was on max bandwidth? And just 
due to statistics? Seems strange...

About reducing code size ("raw" API, ARP, ICMP echo, TCP/IP, and UDP), I think 
you can set options like this (some are based on last cvs), but read opt.h and 
CHANGELOG to get more details :

#define SYS_LIGHTWEIGHT_PROT            1 /* I suppose you are in single thread 
model, or you got your own safe-thread feature */
#define NO_SYS                          1 /* Same, Simon Goldschmidt comment 
that like "NO_SYS=1 means raw-API/polling only and NO_SYS=0 means 
netconn/socket-API & tcpip_thread()", and it's true in most of cases */
#define MEM_LIBC_MALLOC                 1 /* Disable if you don't got a c 
runtime, or if it's not efficient */
#define MEMP_SANITY_CHECK               0 /* to use on debug mode, if you think 
 you got corrupt memory */
#define LWIP_ARP                        1 /* Need for you, if you have an arp 
device (mainly ethernet), of course */
#define ARP_QUEUEING                    0 /* Reduce code (note if you use it 
that this feature got several patch since 1.2.0) */
#define ETHARP_TRUST_IP_MAC             0 /* Will reduce cycles consume if your 
device receive lot of packets */
#define ETHARP_TCPIP_INPUT              0 /* Not need if you use rawapi */
#define ETHARP_TCPIP_ETHINPUT           0 /* Not need if you use rawapi */
#define IP_FORWARD                      0 /* Not need if you don't do a router 
or not use loopif */
#define IP_OPTIONS                      1 /* 1, except if your device is 
deployed on a network where you don't have a FULL control */
#define IP_REASSEMBLY                   0 /* Will reduce footprint, but you 
can't receive fragmented packets */
#define IP_FRAG                         0 /* Will reduce footprint, but you 
can't send fragmented packets */
#define LWIP_RAW                        0 /* Warning, this is for raw pcb (use 
by example if you want to create a ping or tracert tools) and not for what is 
called "raw api" (which is also called low-level "core" / "callback" or native 
api)*/
#define LWIP_DHCP                       0 /* You don't say you need it */
#define LWIP_SNMP                       0 /* You don't say you need it */
#define LWIP_IGMP                       0 /* You don't say you need it */
#define LWIP_UDP                        1 /* You say you need it */
#define LWIP_TCP                        1 /* You say you need it */

#define LWIP_NETIF_HOSTNAME             0 /* You don't say you need it */
#define LWIP_NETIF_API                  0 /* Can be used with sequential api */
#define LWIP_NETIF_CALLBACK             0 /* You don't say you need it */
#define LWIP_HAVE_LOOPIF                0 /* You don't say you need it */ 

#define LWIP_EVENT_API                  0 /* I suppose you use CALLBACK_API, 
but set to 0 if you need it */

#define LWIP_COMPAT_SOCKETS             0 /* You don't need it */
#define LWIP_POSIX_SOCKETS_IO_NAMES     0 /* You don't need it */
#define LWIP_TCP_KEEPALIVE              0 /* You don't need it */
#define LWIP_SO_RCVTIMEO                0 /* You don't need it */
#define SO_REUSE                        0 /* Don't work */
#define LWIP_STATS                      0 /* You already said you disable it */ 
#define PPP_SUPPORT                     0 /* You don't say you need it */ 

You can try this, or wait other developers comments... Note I don't have set 
any value about sizes or delays, which have to be set to get the performance 
you need...

====================================
Frédéric BERNON 
HYMATOM SA 
Chef de projet informatique 
Microsoft Certified Professional 
Tél. : +33 (0)4-67-87-61-10 
Fax. : +33 (0)4-67-70-85-44 
Email : [EMAIL PROTECTED] 
Web Site : http://www.hymatom.fr 
====================================
P Avant d'imprimer, penser à l'environnement
 


-----Message d'origine-----
De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la part de Roger Cover
Envoyé : samedi 14 avril 2007 01:32
À : [EMAIL PROTECTED]
Objet : [lwip-users] Optimizations for applications requiring 
limitedfunctionality.


Greetings,

I have completed my upgrade to version 1.2.0 (from 0.6.3). The reliability of 
my system is much improved. The developers have done a good job increasing the 
robustness of the library.

Now that I have version 1.2.0 running, I have noticed a decrease in performance 
(about 40%). Part of the decrease I initially noticed was because my old 
lwipopts.h file used an old (and no longer correct) method to turned statistics 
collection off. I am using the "raw" API and I only need ARP, ICMP echo, 
TCP/IP, and UDP. The major performance issue is only in UDP.

This brings me to my question: I already found how to turn off the statistics 
and "raw" packet code. What else can I turn off in lwipopts.h to remove things 
I don't need? Version 1.2.0 has a lot of features that 0.6.3 did not have, and 
any help jump-starting my performance improvement quest will be greatly 
appreciated.

Regards,
Roger W. Cover
Spectral Instruments, Inc.
420 N. Bonita Ave.
Tucson, AZ 85745
Voice: 520-884-8821 ext. 144
FAX: 520-884-8803


_______________________________________________
lwip-users mailing list
[EMAIL PROTECTED] http://lists.nongnu.org/mailman/listinfo/lwip-users
BEGIN:VCARD
VERSION:2.1
N:BERNON;Frédéric;;M.
FN:Frédéric BERNON
ORG:HYMATOM SA;Recherche et Développement
TITLE:Chef de projet informatique
TEL;WORK;VOICE:04-67-87-61-10
TEL;WORK;FAX:04-67-70-85-44
ADR;WORK;ENCODING=QUOTED-PRINTABLE:;23;Zone Industrielle=0D=0A175 rue de Massacan;VENDARGUES;;34740;FRANCE;
LABEL;WORK;ENCODING=QUOTED-PRINTABLE:23=0D=0AZone Industrielle=0D=0A175 rue de Massacan=0D=0AVENDARGUES 34740=0D=
=0AFrance
URL;WORK:http://www.hymatom.fr
ROLE:Chef de projet informatique
EMAIL;PREF;INTERNET:[EMAIL PROTECTED]
REV:20020404T083210Z
END:VCARD
_______________________________________________
lwip-users mailing list
[EMAIL PROTECTED]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to