Эта история началась около месяца назад, когда Кирилл Тхай добавил поддержку вложенных пространств имен в CRIU, после чего наша система CI приказала долго жить. В тот момент ничто не предвещало тех увлекательных приключений, в которые мы оказались вовлечены.
Рубрика «memory» - 3
Linux все еще не торт
2017-07-11 в 4:17, admin, рубрики: autotest, bugs, continuous integration, crash, CRIU, leaks, linux, linux kernel, memory, open source, panic, system programming, upstream, Блог компании Virtuozzo, Разработка под Linux, системное программирование, Тестирование IT-системНемного о строках в Си, или несколько вариантов оптимизировать неоптимизируемое
2017-04-12 в 11:57, admin, рубрики: allocation, C, c++, memory, memory leaks, memory management, system programming, отладка, Программирование, Совершенный кодХабра, привет!
Не так давно у со мной произошел довольно-таки интересный инцидент, в котором был замешан один из преподавателей одного колледжа информатики.
Разговор о программировании под Linux медленно перешел к тому, что этот человек стал утверждать, что сложность системного программирования на самом деле сильно преувеличена. Что язык Си прост как спичка, собственно как и ядро Linux (с его слов).
У меня был с собой ноутбук с Linux, на котором присутствовал джентльменский набор утилит для разработки на языке Си (gcc, vim, make, valgrind, gdb). Я уже не помню, какую цель мы тогда перед собой поставили, но через пару минут мой оппонент оказался за этим ноутбуком, полностью готовый решать задачу.
И буквально на первых же строках он допустил серьезную ошибку при аллоцировании памяти под… строку.
char *str = (char *)malloc(sizeof(char) * strlen(buffer));
buffer — стековая переменная, в которую заносились данные с клавиатуры.
Я думаю, определенно найдутся люди, которые спросят: «Разве что-то тут может быть не так?».
Поверьте, может.
А что именно — читайте по катом.
Читать полностью »
Работа с устройствами печати в C# на примере реализации виртуального принтера
2017-02-23 в 0:08, admin, рубрики: .net, alloc, allocate, allocation, api, C#, code, develop, developing, driver, error, escorp, exomode, extern, intptr, invoke, malloc, marshal, marshalling, memory, native, PInvoke, pointer, port, print, printing, programming, technologies, technology, virtual, WinAPI, больше, виртуальный, выделение, Драйвер, код, маршалинг, маршалирование, монитор, натив, нужно, ооп, ошибка, память, печать, принтер, Программирование, разработка под windows, тегов., указательПриветствую всех. В сегодняшней статье речь пойдёт о том, как можно реализовать собственный высокоуровневый API в управляемом коде для работы с устройствами печати, от установки нового монитора печати в системе и до получения обработанного драйвером устройства печати документа с порта принтера.
Как и в прошлый раз, статья будет полезна для ознакомления разработчикам младшего и среднего звена. В процессе изучения материала, Вы узнаете как можно обращаться к низкоуровневым DLL WinAPI в C# с помощью P/Invoke, как установить, настроить и удалить из системы мониторы печати, драйвера принтера, само устройство печати, открыть и связать порт для перенаправления входных данных с устройства печати на монитор, познакомитесь с ключевыми моментами применения маршалирования. Так же мы на практическом примере разберёмся, как с помощью нашего API можно удобно манипулировать устройствами печати в системе, узнаем как можно перехватить обработанные данные после печати с принтера и, например, отправить их на сервер.
Читать полностью »
Как я уговорил BILL и ISPmanager Lite 5 менять оперативную память на тарифе виртуального хостинга
2016-11-28 в 8:36, admin, рубрики: Apache, apache2, billmanager, cgi, ipsmanager, isp, limit, memory, memory management, Серверное администрирование, хостингДо недавних пор я создавал сайты и плагины на WordPress, арендуя виртуальные хостинги у провайдеров. Для себя еще давно выделил панель ISP за удобность и практичность. Так случилось, что все время работал на Windows, следовательно, Linux для меня — темный лес с диким животными. Сайты со временем «росли» и становились более требовательны, как минимум к дисковому пространству и иногда к оперативной памяти.
Пару месяцев назад по некоторым соображениям решил арендовать виртуальный сервер на Linux и самостоятельно установить туда ISP и BILL для создания и управления услугами.
Поколдовав несколько часов с документацией и SSH консолью, я запустил свой первый сервер на CentOS. В течение недели выяснил: почему gmail.ru и mail.ru не хотят принимать письма с моего хостинга, как устанавливать ограничения на дисковое пространство, контролировать настройки php для каждого виртуального хостинга и что BILL, имея в своем арсенале возможность покупки дополнительных параметров, включая пункт «Оперативная память», не может на самом деле устанавливать ее.
Unsafe в Swift
2016-02-03 в 9:09, admin, рубрики: ios development, iOS разработка, memory, memory leak, pointer, swift, разработка под iOS, указателиСоздатели современных языков программирования всеми силами пытаются увести программистов от прямой работы с указателями и памятью, либо вообще не включая в язык подобные возможности (например, Java) либо маркируя их страшными словами unsafe (C#). Пишущим на swift повезло, этот язык попал во вторую категорию, и хотя это не рекомендуется, а в документации встречаются предупреждения о возможных утечках памяти и прочих страшилках возможность такая есть!
В этой статья я хотел бы рассмотреть работу с указателями в swift, а так же порассуждать для чего это вообще может понадобиться.
Читать полностью »
Что такое Kingston System Specific Memory?
2015-04-07 в 7:01, admin, рубрики: Kingston, memory, ram, system specific, Блог компании Kingston Technology, Железо, Настольные компьютеры, метки: kingstonПолная совместимость — залог стабильной работы в большинстве электронных устройств. Нужно чтобы все было прекрасно: и процессор, и материнская плата, и оперативная память. Компания Kingston уже более 25 лет сотрудничает с ведущими мировыми производителями, сертифицируя память под конкретные платформы для того, чтобы пользователи и администраторы не мучались при подборе памяти для апгрейда. Под катом — подробности о том, как это работает.
Выполнять операции в памяти, минуя жесткий диск, не всегда быстрее
2015-03-26 в 11:44, admin, рубрики: hdd, linux, memory, ram, windows, выполнение операций, Железо, обращения к диску, ОЗУ, операционные системы, Программирование, тестирование, метки: HDD, Memory, RAM, RAM, выполнение операций, обращения к диску, ОЗУ 
Среди разработчиков и обывателей бытует распространенное мнение, что сокращение количества запросов к жесткому диску и выполнение максимального количества операций в памяти ведет к ускорению работы ПО. Распространение такого явления как Big Data, сделало одним из наиболее популярных методов экономии времени для программистов выполнение операций исключительно в оперативной памяти. Однако, новые исследования оспаривают общепринятое мнение о том, что любые операции выполняются быстрее в оперативной памяти, чем при наличии обращений к жесткому диску во время работы.
Читать полностью »
Как Linux работает с памятью. Семинар в Яндексе
2015-02-17 в 11:53, admin, рубрики: linux, memory, memory management, Блог компании Яндекс, высокая производительность, Настройка Linux, системное администрированиеПривет. Меня зовут Вячеслав Бирюков. В Яндексе я руковожу группой эксплуатации поиска. Недавно для студентов Курсов информационных технологий Яндекса я прочитал лекцию о работе с памятью в Linux. Почему именно память? Главный ответ: работа с памятью мне нравится. Кроме того, информации о ней довольно мало, а та, что есть, как правило, нерелевантна т.к. эта часть ядра Linux меняется достаточно быстро и не успевает попасть в книги. Рассказывать я буду про архитектуру x86_64 и про Linux-ядро версии 2.6.32. Местами будет версия ядра 3.х.
Эта лекция будет полезна не только системным администраторам, но и разработчикам программ высоконагруженных систем. Она поможет им понять, как именно происходит взаимодействие с ядром операционной системы.
Термины
Резидентная память – это тот объем памяти, который сейчас находится в оперативной памяти сервера, компьютера, ноутбука.
Анонимная память – это память без учёта файлового кеша и памяти, которая имеет файловый бэкенд на диске.
Page fault – ловушка обращения памяти. Штатный механизм при работе с виртуальной памятью.
Читать полностью »
Heartbleed на Rust
2015-02-02 в 16:40, admin, рубрики: do not trust user input, hype, memory, Rust, safety, информационная безопасность, ложки нетВ комментариях к одной из ссылок на Hacker News некто утверждал, что использование Rust предотвратило бы Heartlbeed, что код бы даже не скомпилировался. Это прозвучало как вызов!
Тред начинается вот здесь. Я не собирался ни к кому придираться, но утверждение о предотвращении Heartbleed оказалось удачно сформулировано. В отличие от расплывчатых заявлений о безопасности работы с памятью в целом, конкретно данное утверждение можно протестировать.
Читать полностью »
Борьба с утечками памяти в Android. Часть 1
2014-10-20 в 12:09, admin, рубрики: android, badoo, memory, mobile development, optimisations, profiling, Блог компании Badoo, Разработка под android
Этой статьей мы открываем цикл статей на Хабре о нашей разработке под Android.
Согласно докладу компании Crittercism от 2012 года, OutOfMemoryError — вторая по распространенности причина «крашей» мобильных приложений.
Честно говоря, и в Badoo эта ошибка была в топе всех крашей (что неудивительно при том объеме фотографий, которые просматривают наши пользователи). Борьба с OutOfMemory — занятие кропотливое. Мы взяли в руки Allocation Tracker и начали играться с приложением. Наблюдая за данными зарезервированной памяти, мы выявили несколько сценариев, при которых выделение памяти росло с подозрительной стремительностью, забывая при этом уменьшаться. Вооружившись несколькими дампами памяти после этих сценариев, мы проанализировали их в MAT (http://www.eclipse.org/mat/).
Результат был занимательный и позволил нам в течение нескольких недель снизить количество крашей в разы. Что-то было специфично для нашего кода, но также выявились типичные проблемы, присущие большинству Android приложений.
Сегодня поговорим о конкретном случае утечки памяти. О нем многие знают, но часто закрывают на это глаза (а зря).
Читать полностью »



