j***i 发帖数: 3096 | 1 需要在一个内存有限的嵌入式设备上使用libcurl。我在5个线程里用curl_easy_init()
初始化curl handle并传输数据后,发现libcurl使用了3M的内存.调用curl_easy_
cleanup()之后,内存也没有被释放。有没有办法或者设置什么configuration减少
libcurl内存的使用。
我需要的只是libcurl的HTTP的实现
我试着disable SSL in libcurl,好像也没有多大用处
如果需要使用libcurl里的ssl,需要的内存是不是更要大大增加? |
|
j***i 发帖数: 3096 | 2 以前高端点的设备都是直接用libcurl因为libcurl啥都给你做好了。
现在同样的程序在低端的设备上用,才发现内存不够的问题,裸用tcp重新做一套,时
间不够了。
只能看能不能尽量减少内存的使用。
开不同的线程是因为,不同的线程下载不同的东西。比如一个线程下载电影的内容,一
个线程下载电影的poster。 |
|
j***i 发帖数: 3096 | 3 需要在一个内存有限的嵌入式设备上使用libcurl。我在5个线程里用curl_easy_init()
初始化curl handle并传输数据后,发现libcurl使用了3M的内存.调用curl_easy_
cleanup()之后,内存也没有被释放。有没有办法或者设置什么configuration减少
libcurl内存的使用。
我需要的只是libcurl的HTTP的实现
我试着disable SSL in libcurl,好像也没有多大用处
如果需要使用libcurl里的ssl,需要的内存是不是更要大大增加? |
|
a*****i 发帖数: 4391 | 4
err damn, and I already relinked and touched the old binary.
wei@firefly:/usr/lib> ls -la libcurl*
lrwxrwxrwx 1 root root 16 2010-02-03 11:24 libcurl.so.4 -> libcurl.so.4.
1.1
-rwxr-xr-x 1 root root 289424 2010-02-03 11:23 libcurl.so.4.1.1 |
|
z**q 发帖数: 41 | 5 从线程的角度,Linux pthread 有个默认stack size,好像是几MB,这个stack size可以
设置的少一些, 我记得一般100-200k就够了。
从libcurl使用内存的角度,libcurl应该是接受buffer,然后传输,你说的使用内存,
是哪分配的内存? 我有点confuse. 不过libcurl我也有几年没用了,你能说详细点么?
SSL会burn cpu,影响点传输速率
() |
|
j***i 发帖数: 3096 | 6 我还没看libcurl的源码,他怎么分配的内存还不知道。网上查了下也没查到。我估计
他是不是分配了些内存做cache用,拿来提高数据传输性能什么的
么? |
|
t**d 发帖数: 6474 | 7
什么server?是不是server的模块不全? 我的lighttpd里面用ipkg list_installed显
示有如下模块安装。你的如果没有,就装上这些模块 (不一定要全装)。
expat - 2.0.1-1 - XML Parser library
fcgi - 2.4.0-2 - FastCGI is a language independent, scalable, open extension
to fontconfig - 2.5.0-0 -
freetype - 2.3.6-1 - Free truetype library
gconv-modules - 2.5-1 - Provides gconv modules missing from the firmware.
gdbm - 1.8.3-2 -
libcurl - 7.20.0-1 -
libdb - 4.2.52-3 - Berkeley DB Libraries
libgd - 2.0.35-5 -
libjpeg - 6b-3 - collection of jpeg tools
libpng - ... 阅读全帖 |
|
t**d 发帖数: 6474 | 8 你的模块装的不全。参考我前面回一个网友的帖子列出的模块,装全就好了。用ipkg
list_installed 看一下哪些是装过了的。
尤其是这几个很重要:
gdbm - 1.8.3-2 -
libcurl - 7.20.0-1 -
libdb - 4.2.52-3 - Berkeley DB Libraries
libgd - 2.0.35-5 -
libjpeg - 6b-3 - collection of jpeg tools
libpng - 1.2.43-1 -
libgd - 2.0.35-5 -
|
|
p**o 发帖数: 3409 | 9 对了,CloudStation最二百五的其实它的同步算法,直接调libcurl和zlib1以整个文件
为单位进行同步,对大文件不做任何分块。连封装一下rsync这样的事都不做。我粗略
测了一下,同步100GB的文件,往往要下载近500GB的数据。 |
|
p**o 发帖数: 3409 | 10 copy.com 的 Windows 客户端,在我两台 Win7 x64 机器上,都在没有任何文件需要同
步的情况下,独占一个 CPU 100%。程序掉进死循环了?
Synology CloudStation:同步不用 rsync 做 delta diffs 而是调 libcurl 整个整个
文件地传,中途传输出错就整个文件从头开始传。更严重的,连正确性都不能保证:同
步过程中丢文件;新版本文件被旧版本覆盖;删掉的文件又重新出现 ——论坛怨声载
道竟然没有技术人员理会回复。
回头看 dropbox,一开始就能把程序写对,真他妈不容易。 |
|
|
a9 发帖数: 21638 | 12 自己写的代码。用了libcurl什么的。
好像是gcc 4.6.1的问题? 我把 -l弄到 -o后边 -I去掉 就行了。
我是新手,呵呵。原来网上找了个东东,写了些$(CFLAG)= .... -Ixxxx -lxxxx什么的
。老版本下没问题,到了ubuntu 11.10下就不行了。 |
|
a9 发帖数: 21638 | 13 差不多吧。哈哈
也就用libmysql,libxml2,libssl,libcrypto,libcurl这也啊,还用什么?
我用c#的时候也基本不用外面的企业库。感觉不符合要求。 |
|
x******m 发帖数: 736 | 14 用一个软件叫GeneTorrent,在我们学校cluster上跑。这个软件有rpm可以下载,但是我
不是管理员,所以没有权限装软件。
我就下了不用安装的tar.gz文件。
但是等我run这个程序的时候,总是报错 /libexec/gtdownload: error while loading
shared libraries: libxqilla.so.5: cannot open shared object file: No such
file or directory
这个是因为软件需要一些packages吗?
我记得这个manual上写了一些这个软件需要的package:openssl 1.0.1c,xerces-c 3.
1.1,xqilla 2.3.0,libcurl 1.3。
我不是管理员,怎么能装这些packages内?
菜鸟一个,大家帮帮忙 |
|
p****j 发帖数: 4762 | 15 我用red hat Enterprise 7, 本来有curl 7.29, 可是要升级到7.50.于是同时升级了
libcurl
可是升级之后,curl 不支持SSL,HTTPS, 之前是支持的。 就算运行./configure --
with-ssl, 也不支持,用了各种网上的办法,都不行,请教,该怎么解决呢? |
|
|
c*******u 发帖数: 1269 | 17 【 以下文字转载自 Linux 讨论区 】
发信人: claireliu (流水), 信区: Linux
标 题: 问个编程问题:关于cache
发信站: BBS 未名空间站 (Wed Oct 29 09:48:54 2008)
一般browser是怎么实现cache功能的? 我现在在程序里用curl下图片,但不想每次都
下。怎么cache? 另外有人建议换成libsoup, libcurl 和libsoup哪个能比较好地做这
个? |
|
|
t****a 发帖数: 1212 | 19 你首先要匹配到下载链接,然后一个个下载。
匹配下载链接,首先要解析html。当然你愿意不解析自己搞定也行。
如果用python的话,试试看beautifulsoup吧。
匹配到下载链接后,可以用linux的curl, wget。python的urllib2(或者libcurl?)也行。 |
|
x******m 发帖数: 736 | 20 【 以下文字转载自 Linux 讨论区 】
发信人: xydotcom (xydotcom), 信区: Linux
标 题: 新手求教一个问题
发信站: BBS 未名空间站 (Thu Mar 7 16:09:54 2013, 美东)
用一个软件叫GeneTorrent,在我们学校cluster上跑。这个软件有rpm可以下载,但是我
不是管理员,所以没有权限装软件。
我就下了不用安装的tar.gz文件。
但是等我run这个程序的时候,总是报错 /libexec/gtdownload: error while loading
shared libraries: libxqilla.so.5: cannot open shared object file: No such
file or directory
这个是因为软件需要一些packages吗?
我记得这个manual上写了一些这个软件需要的package:openssl 1.0.1c,xerces-c 3.
1.1,xqilla 2.3.0,libcurl 1.3。
我不是管理员,怎么能装这些packages内?
菜鸟一个,大家帮... 阅读全帖 |
|
n*****t 发帖数: 22014 | 21 apt-get source 然后 disable some feature,make -Os 试一下,再不行就得到源码里
去挖了 。。。
() |
|
n****1 发帖数: 1136 | 22 嵌入式使用HTTP协议有点... 干嘛不裸用tcp?
还有为嘛要开5个instance? 开一个HTTP或者spdy, 其他线程把任务丢给这一个不就可
以了?
() |
|
n****1 发帖数: 1136 | 23 SPDY能够把一个TCP stream掰成多个stream用, 而且是同时传输(不是http pipelining
), 很适合这种情况. |
|
n****1 发帖数: 1136 | 24 现在人家server端都开始注重async io, 你搞嵌入式的还开5个thread搞blocking io.
这世道真乱啊 |
|
j***i 发帖数: 3096 | 25 吊丝公司,以完成任务为主。以前在内存多点的设备上也没有问题。想把程序用在低端
的设备上,悲剧了
. |
|
|
j***i 发帖数: 3096 | 27 diaable了一堆东西,包括SSL,内存没有明显下降。 |
|
h*******t 发帖数: 2679 | 28 听上去像是来自MBA拍脑袋的决策。同情一下。见过不少了。 |
|
o******1 发帖数: 1046 | 29 我自己在网上倒是搜到了一些,比如duckduckgo, libcurl,faroo,winesearcher之类
的。但是从来没有用过,所以想找大家推荐推荐。 |
|
a*****i 发帖数: 4391 | 30 Fatal Python error: pycurl: libcurl link-time version is older than compile-
time version
What is wrong? |
|
a*****i 发帖数: 4391 | 31
google
yeah I did google first, but came up with nothing useful in my case. :(
Does this tell the problem more precise?
wei@firefly:~/Download> python
Python 2.6.2 (r262:71600, Oct 24 2009, 03:16:31)
[GCC 4.4.1 [gcc-4_4-branch revision 150839]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>>
>>>
>>> import curl
Fatal Python error: pycurl: libcurl link-time version is older than compile-
time version
Aborted |
|